Время генерации главной страницы и запросы к б/д

#31 16 декабря 2017 в 20:38

Какая ОС стоит на сервере?

vikont

Тут без разницы, настраивать любую надо, только файлы чуть иначе находятся.
#32 16 декабря 2017 в 20:39
Вот результаты mysqltuner

  1.  
  2. sudo mysqltuner
  3. >> MySQLTuner 1.6.0 - Major Hayden <major@mhtx.net>
  4. >> Bug reports, feature requests, and downloads at http://mysqltuner.com/
  5. >> Run with '--help' for additional options and output filtering
  6. [--] Skipped version check for MySQLTuner script
  7. [OK] Currently running supported MySQL version 5.5.56-MariaDB
  8. [OK] Operating on 64-bit architecture
  9.  
  10. -------- Storage Engine Statistics -------------------------------------------
  11. [--] Status: +ARCHIVE +Aria +BLACKHOLE +CSV +FEDERATED +InnoDB +MRG_MYISAM
  12. [--] Data in MyISAM tables: 3G (Tables: 972)
  13. [--] Data in InnoDB tables: 10M (Tables: 182)
  14. [!!] Total fragmented tables: 23
  15.  
  16. -------- Performance Metrics -------------------------------------------------
  17. [--] Up for: 3h 53m 49s (224K q [15.979 qps], 6K conn, TX: 896M, RX: 33M)
  18. [--] Reads / Writes: 95% / 5%
  19. [--] Binary logging is disabled
  20. [--] Total buffers: 328.0M global + 4.8M per thread (200 max threads)
  21. [OK] Maximum reached memory usage: 351.9M (4.53% of installed RAM)
  22. [OK] Maximum possible memory usage: 1.3G (16.53% of installed RAM)
  23. [OK] Slow queries: 0% (0/224K)
  24. [OK] Highest usage of available connections: 2% (5/200)
  25. [OK] Aborted connections: 0.01% (1/6992)
  26. [OK] Query cache efficiency: 39.2% (129K cached / 329K selects)
  27. [!!] Query cache prunes per day: 100700
  28. [OK] Sorts requiring temporary tables: 1% (325 temp sorts / 18K sorts)
  29. [!!] Joins performed without indexes: 131
  30. [!!] Temporary tables created on disk: 45% (3K on disk / 8K total)
  31. [OK] Thread cache hit rate: 99% (5 created / 6K connections)
  32. [!!] Table cache hit rate: 5% (407 open / 7K opened)
  33. [OK] Open file limit used: 70% (726/1K)
  34. [OK] Table locks acquired immediately: 99% (121K immediate / 121K locks)
  35.  
  36. -------- MyISAM Metrics -----------------------------------------------------
  37. [OK] Key buffer used: 100.0% (8M used / 8M cache)
  38. [OK] Key buffer size / total MyISAM indexes: 8.0M/550.3M
  39. [OK] Read Key buffer hit rate: 99.9% (12M cached / 14K reads)
  40. [!!] Write Key buffer hit rate: 43.2% (14K cached / 8K writes)
  41.  
  42. -------- InnoDB Metrics -----------------------------------------------------
  43. [--] InnoDB is enabled.
  44. [OK] InnoDB buffer pool / data size: 128.0M/10.3M
  45. [OK] InnoDB buffer pool instances: 1
  46. [!!] InnoDB Used buffer: 18.89% (1547 used/ 8191 total)
  47. [OK] InnoDB Read buffer efficiency: 99.92% (1919010 hits/ 1920552 total)
  48. [!!] InnoDB Write buffer efficiency: 0.00% (0 hits/ 1 total)
  49. [OK] InnoDB log waits: 0.00% (0 waits / 86 writes)
  50.  
  51. -------- AriaDB Metrics -----------------------------------------------------
  52. [--] AriaDB is disabled.
  53.  
  54. -------- Replication Metrics -------------------------------------------------
  55. [--] No replication slave(s) for this server.
  56. [--] This is a standalone server..
  57.  
  58. -------- Recommendations -----------------------------------------------------
  59. General recommendations:
  60. Run OPTIMIZE TABLE to defragment tables for better performance
  61. Set up a Password for user with the following SQL statement ( SET PASSWORD FOR 'user'@'SpecificDNSorIp' = PASSWORD('secure_password'); )
  62. Restrict Host for user@% to user@SpecificDNSorIp
  63. MySQL started within last 24 hours - recommendations may be inaccurate
  64. Enable the slow query log to troubleshoot bad queries
  65. Adjust your join queries to always utilize indexes
  66. When making adjustments, make tmp_table_size/max_heap_table_size equal
  67. Reduce your SELECT DISTINCT queries which have no LIMIT clause
  68. Increase table_open_cache gradually to avoid file descriptor limits
  69. Read this before increasing table_open_cache over 64: http://bit.ly/1mi7c4C
  70. Beware that open_files_limit (1024) variable
  71. should be greater than table_open_cache ( 407)
  72. Variables to adjust:
  73. query_cache_size (> 16M)
  74. join_buffer_size (> 128.0K, or always use indexes with joins)
  75. tmp_table_size (> 32M)
  76. max_heap_table_size (> 32M)
  77. table_open_cache (> 407)
  78.  
#33 16 декабря 2017 в 20:46

Тут без разницы, настраивать любую надо, только файлы чуть иначе находятся.

letsgo

Не согласен.
UBUNTU очень сильно жрет ресурсы. Для нее нужно более мощное оборудование и эта операционная система не очень хорошо работает в RAID
последние версии ubuntu имеют на борту последние версии приложений (php7, например) что значительно затрудняет работу с системой

DEBIAN — тоже требовательна к ресурсам, но гораздо меньше и в целом, проблемы те же что в убунту

Centos — 6 и 7 версии на данный момент самые популярные на высокопроизводительных серверах, из-за простоты настройки, КАЧЕСТВЕННО и КОЛИЧЕСТВЕННО выгодно отличающихся требований к аппаратным ресурсам.


Сентос 6 будет выдерживать нагрузку в 5тыс. посетителей и 10 тыс. просмотров на 2 ядрах ноутбука с 2 гигабайтами оперативки
сайт Евпатории на таком работал раньше.

На новый сервер 4 ядра, 8 гиг. оперативки — поставили убунту 16.04 — она положила сервер на лопатки (в RAID). Время генерации страницы было 4.5 секунды! (неделю назад)

Вернулись на сентос, но уже 7 версию — работать просто класс! Удобно, быстро и время генерации 0.7 секунды
#34 16 декабря 2017 в 21:27
@ivanpolyakov, Здесь возможно вам чтото полезное покажут.
#35 17 декабря 2017 в 14:39

возможно вам чтото полезное покажут

eoleg

Спасибо. Показали.
По результатам — барьер в 900 млс.
удалось сократить до 700 млс.
на главной, с кучей модулей и картинок
#36 17 декабря 2017 в 15:41

Не согласен.

@ivanpolyakov

0.7 для TTFB — это слабо очень. Instantcms работает на уровне 0.100 — 0.200 мс, это один из его плюсов, быстрота работы. Я не работал с Ubuntu, в основном Centos и Debian — по ресурсам сколько они берут, это мизер, ведь их ставят и на контейнеры гораздо слабее вашего компьютера. Kучше всего ставить php не меньше 7, настраивать режим работы nginx + php-fpm и правильно настроить базу потом. Обязательно Opcache.

query_cache_size (> 16M)
join_buffer_size (> 128.0K, or always use indexes with joins)
tmp_table_size (> 32M)
max_heap_table_size (> 32M)
table_open_cache (> 407)

@ivanpolyakov

Увеличьте показатели. Join можно сразу 128M (и то наверно может не хватать), tmp_table_size — тоже поставить не меньше 256М, как и max_heap_table_size тоже самое. Table_open_cache увеличьте количество тоже. А вот query_cache_size лучше поднимать не сразу намного, начните с 64М но лимиты поставьте в 1М или в 2М.
#37 17 декабря 2017 в 16:00
@ivanpolyakov, можно ещё модуль pagespeed для nginx или apache включить
Ещё есть хороший скрипт tuning-primer.sh
#38 17 декабря 2017 в 23:17

pagespeed

eoleg

Крым — Россия — НАВСЕГДА😊ССАНКЦИИ
#39 17 декабря 2017 в 23:26

ССАНКЦИИ

@ivanpolyakov
это модуль а не сервис гугла
ещё php-opcache можно включить если не включен
#40 18 декабря 2017 в 00:32

это модуль а не сервис гугла

eoleg
да, вот только скачать его из Крыма — нельзя

сейчас после проведенной работе, по советам указанным выше — скорость значительно повысилась
и закрепилась на уровне 400 млс
#41 18 декабря 2017 в 01:21

сейчас после проведенной работе, по советам указанным выше — скорость значительно повысилась

@ivanpolyakov

Какие советы помогли кстати?
#42 18 декабря 2017 в 02:50

Вернулись на сентос, но уже 7 версию — работать просто класс! Удобно, быстро и время генерации 0.7 секунды

@ivanpolyakov
Прибавка в скорости работы сайта с РНР7 реально серьезная! Но пока не судьба UPDS не поддерживает РНР7
#43 18 декабря 2017 в 08:49

Прибавка в скорости работы сайта с РНР7 реально серьезная! Но пока не судьба UPDS не поддерживает РНР7

vikont

да, мы пробовали ставить ubuntu server 16
но к сожалению на ней php7

откатить версию нормально на 100% не получается

следовательно будем работать с тем, что есть
#44 18 декабря 2017 в 08:58


Какие советы помогли кстати?

letsgo


Заметно быстрее стало? Во-первых mysql. На сервере стоит mariadb


[mysqld]
default-storage-engine = MyISAM
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

skip-external-locking
max_allowed_packet = 32M
sort_buffer_size = 256K
read_buffer_size = 128K
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 1024

#Размер query_cache_size нужно оптимизировать по значению "Query cache efficiency: 72.3%" Отдавать под него столько памяти, сколько не #жалко, но до того предела, когда этот процент перестанет существенно расти. Попробуйте 8, 16, 32, 64, 128 и т.д. Замеры следает делать #после продолжительной работы, лучше всего более суток. Если заметного роста нет, то ставьте минимальное значение. Values from 32M to #512M normally make sense

query_cache_size= 1024M

thread_concurrency = 8

#Temporary tables created on disk — если он не уменьшается, то нет смысла их увеличивать. 32 и 32

tmp_table_size = 1280M
max_heap_table_size = 2048M

###################
table_open_cache = 16K

#чем больше кейбуфер, тем больше надо для темпрари таблес значения ставится по размеру totalmyisam
key_buffer_size = 576M

#innodb_use_native_aio = 0
innodb_file_per_table

max_connections=200
max_user_connections=50
wait_timeout=10
interactive_timeout=50
long_query_time=5

#slow_query_log=1
#slow_query_log_file=/var/log/mysql-slow-queries.log


[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

Помогло

уменьшение:
sort_buffer_size = 256K
read_buffer_size = 128K

увеличение
tmp_table_size = 1280M
max_heap_table_size = 2048M

включение keep-alive в httpd

в httpd также


KeepAlive on
<IfModule prefork.c>
StartServers 8
MinSpareServers 12
MaxSpareServers 24
MaxClients 100
MaxRequestsPerChild 4096
</IfModule>
nginx отдельная тема. Включение gzip тормозит работу
включение сжатия в htaccess тормозит работу

даже не знаю что делать…


# Server globals

worker_processes 4;
worker_rlimit_nofile 200000;
error_log /var/log/nginx/error.log crit;
pid /var/run/nginx.pid;


# Worker config
events {
worker_connections 4096;
use epoll;
multi_accept on;
}


http {
# Main settings
sendfile on;
tcp_nopush on;
tcp_nodelay on;
directio 2m;
limit_rate 64K;
limit_rate_after 1m;
client_header_timeout 1m;
client_body_timeout 1m;
client_header_buffer_size 4k;
client_body_buffer_size 10k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;
send_timeout 20;
keepalive_timeout 30;
keepalive_requests 2000;
reset_timedout_connection on;
server_tokens off;
server_name_in_redirect off;
server_names_hash_max_size 512;
server_names_hash_bucket_size 512;
proxy_set_header X-Real-IP $remote_addr;


# Log format
log_format main '$remote_addr — $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format bytes '$body_bytes_sent';
#access_log /var/log/nginx/access.log main;
access_log off;


# Mime settings
include /etc/nginx/mime.types;
default_type application/octet-stream;


# Compression
gzip on;
gzip_comp_level 7;
gzip_min_length 1024;
gzip_buffers 8 64k;
gzip_types text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss application/x-font-ttf image/svg+xml font/opentype;
gzip_proxied any;
gzip_disable "MSIE [1-6]\.";


# Proxy settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_buffering off;


# Cloudflare www.cloudflare.com/ips
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 172.64.0.0/13;
#set_real_ip_from 2400:cb00::/32;
#set_real_ip_from 2606:4700::/32;
#set_real_ip_from 2803:f800::/32;
#set_real_ip_from 2405:b500::/32;
#set_real_ip_from 2405:8100::/32;
real_ip_header CF-Connecting-IP;
real_ip_recursive off;


# SSL PCI Compliance
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";


# Error pages
error_page 403 /error/403.html;
error_page 404 /error/404.html;
error_page 502 503 504 /error/50x.html;


# Cache settings
proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_temp_path /var/cache/nginx/temp;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_valid any 1d;


# Cache bypass
map $http_cookie $no_cache {
default 0;
~SESS 1;
~wordpress_logged_in 1;
}


# File cache settings
open_file_cache max=200000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;


# Wildcard include
include /etc/nginx/conf.d/*.conf;
}

#45 19 декабря 2017 в 09:56
gzip_comp_level 7 нужно ставить не больше 5 так как реально степень сжатия после 5 незначительная при значительном уменьшении скорости сжатия.
gzip_buffers 8 64k; посмотрите а nginx у вас скомпилён с с этим модулем.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.