LINUX.ORG.RU
ФорумAdmin

Оптимизация сервера для сайта на Wordpress с посещением 50к в сутки

 , , ,


1

1

Cайт на WP, посещаемость около 50к хостов в сутки, хостимся на DOcean: 8 GB 4 CPUs 80 GB SSD Disk

Стоит плагин-скрипт Кэш MaxCache. Он создает в папке в корне сайта статические хтмл и всем их отдает. Что позволяет отдавать страницы в обход WP, быстро и без генерации кучи запросов к бд и собственно запуска WP, (стата 0.47MB/0.00051 sec) Без него бы загнулись давно, скрипт реально выручает хоть он и не гибкий.

Сервер Debian+nginx держит и 500 и 700 онлайн - Load average 6-12 и все в принципе нормально. (может и не только по этому)

Сайт падает на всплесках активности, когда сваливается сразу около 80-150 посетителей (причем на закешированные страницы).

htop в начале показывать такую картину http://joxi.ru/E5mdw5c3Kazr13 и через пол минуты такую и уходит в нирвану http://joxi.ru/Bv299oCZLoQ2GX

вот так это выглядит на графах хостинг панели: http://joxi.ru/NDrlLRTV56prP8

Помогите найти узкие места и оптимизировать сервер.



Последнее исправление: Jey13 (всего исправлений: 1)

И включи в htop подробный вывод статистики CPU: F2, Display options, Detailed CPU time.

Black_Roland ★★★★
()

Тут набежало много php-fpm-меров. Но не факт что простая замена поможет

Скажи мне версию и настройки апача

httpd -V
cat /path/to/настройки_конфига

trofk ★★★
()
Ответ на: комментарий от Black_Roland

Ну у тебя слово nginx не встречается. Может, ТС не в курсе.

post-factum ★★★★★
()

цена вопроса?

anonymous
()

Нет ну это глупость какая-то. 150 пользователей не смогут завалить WP даже с apache, с дефолтными настройками и без кэширования и совсем без каких либо оптимизаций. Не верю. Тем более еще и 8 GB, так что даже если mysql деволтный и хочет покушать, все равно проблем никаких быть не должно.

anonymous_sama ★★★★★
()
Ответ на: конфа сервера от Jey13

Откажись либо от cgi либо от apache.Prefork мне вообще не нравится, генерировать процесс на каждое подключение - идиотизм.Кстати судя по заявленному nginx у тебя вообще не участвует, так как на статику вызывается php.

Erfinder
()
Последнее исправление: Erfinder (всего исправлений: 1)
Ответ на: конфа сервера от Jey13

fpm и apache вместе что-ли работают? от apache лучше отказаться.и использовать fpm с nginx.

Black_Roland ★★★★
()
Ответ на: комментарий от trofk

Что то не работает такая команда :(

root@__:~# httpd -V -bash: httpd: command not found

Может потому что у меня Дебиан.

я запустил вот это apache2ctl -V

Server version: Apache/2.2.22 (Debian) Server built: Dec 23 2014 22:48:29 Server's Module Magic Number: 20051115:30 Server loaded: APR 1.4.6, APR-Util 1.4.1 Compiled using: APR 1.4.6, APR-Util 1.4.1 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/apache2" -D SUEXEC_BIN="/usr/lib/apache2/suexec" -D DEFAULT_PIDLOG="/var/run/apache2.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="mime.types" -D SERVER_CONFIG_FILE="apache2.conf"

Jey13
() автор топика

Точно статика отдается при большой активности? Обычно мускуль такую нагрузку на диск дает.

Amet13 ★★★★★
()
Последнее исправление: Amet13 (всего исправлений: 1)
Ответ на: комментарий от Amet13

Простите парни я совсем не профессионал в этом а новичок.

отключил апача оставил нгинкс

теперь так: PHP-FPM 5.4.36-0+deb7u3 , awstats 7.0~dfsg-7 , logrotate 3.8.1-4 , nginx 1.2.1-2.2+wheezy3

Но перестал работать php.

Jey13
() автор топика
Ответ на: комментарий от Jey13

Простите парни я совсем не профессионал в этом а новичок.


А профессионалы где? Тогда выкидывай весь этот хлам, ставь тупо апач c модулем php. Не забудь прописать vhost'ы и прочие настройки php.

Erfinder
()
Ответ на: комментарий от Jey13

Если апач отключаю то при заходе на главную начинается скачивание файла, т.е. пхп не работает.

Пока оставил вот так - с этими настройками все работает. http://minus.com/ls62HlUwRTaFZ

первую опцию можно переключить с prefork на ITK и тоже будет работать, но если вообще выключить то ничего не работает.

Jey13
() автор топика
Ответ на: комментарий от trofk

вот конфиг apache2.conf

LockFile ${APACHE_LOCK_DIR}/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 5

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          200
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          200 
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

DefaultType None

HostnameLookups Off

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

Include mods-enabled/*.load
Include mods-enabled/*.conf

Include ports.conf

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

Include conf.d/

Include sites-enabled/
Include vhosts-default/
Include vhosts/
NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

Jey13
() автор топика
Ответ на: комментарий от Jey13

Это все не то.

На фронте у вас стоит nginx, позади него апач+fcgid скорее всего. Тогда получается php-fpm тут никак не задействован.

Amet13 ★★★★★
()
Ответ на: конфа сервера от Jey13

MPM-Prefork

Тормозное говно

LA в 148 это конечно прикольно, узкое место может быть в i/o, а точнее база данных. И само собой mpm - сразу в мусорку.

invokercd ★★★★
()

Я на 512мб и одном ядре апач+нжинкс разгонял так, что вордпресс 300 запросов в секунду без кэша и без ssd держал.

Load average 6-12 и все в принципе нормально.

Нихрена это не нормально для веба при такой нагрузке.
Во-первых лоад не должен быть больше количества ядер, а во-вторых веб должен упираться в пропускную способность дисков, а не в процессор. Или в крайнем случае в объём ОЗУ. Но не в процессор. Нечего там процессить в таких объёмах, времена первых пентиумов давно прошли.

узкие места

Что-то не так в пыхе, не должна она столько проца отжирать. Некуда ей.
Либо настроена криво либо скрипты кривые.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от Amet13

Я использую, но только в особо специфичных ситуациях.
2015 год на дворе, в свободной продаже есть восемнадцатиядерные процессоры, а в современные серверы без проблем набиваются терабайты ОЗУ — нет никаких проблем с апачем.

Goury ★★★★★
()
Ответ на: комментарий от Amet13

Парень не разбирается, проще всего ему поддерживать апач, а то он наустановил пакетов через админку, а настроить не осилил.Еще и проблема исчезнет.

Erfinder
()

Видимо пхп каждыц раз парсится, опкод кеш стоит?

xorik ★★★★★
()
Ответ на: комментарий от Erfinder

Там еще и ISPmanager мутит фигню всякую, на Business версии оставили php-cgi, выпилили php-fastcgi, и по дефолту поставили php-fpm. То что добавили php-fpm — хорошо конечно, но триллион сайтов работающих чуть более чем полностью с использованием .htaccess вынуждены переползать на php-cgi или того хуже php-apache.

Amet13 ★★★★★
()
Ответ на: комментарий от Goury

такого дурачка как ты лучше не слушать.

anonymous
()
Ответ на: комментарий от Jey13
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)

Попробуй заменить на Server MPM: Worker

Там где лежат исполняемые бины апача могут лежать другие сборки httpd файла.

trofk ★★★
()

Могу помочь ssh + советы. Бесплатно.

Если вы контора, а не один человек, то могу не ограничиваться советами и починить данную проблему+мониторинг+инструкции(это уже не бесплатно)

trofk ★★★
()
Ответ на: комментарий от trofk

К сожалению не контора, всё на мне. Но за доброе дело отблагодарю. Т.к. знаний моих явно не хватает на простые советы. Оставьте пожалуйста координаты по которым можно с вами связаться.

Jey13
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.