не про оптимизацию VDS а то что в соседней вкладке браузера

Такая вот байда в Москве сейчас. Это события среды, а были ещё в прошлые выходные и в третий раз уже сегодня - ппц.

Продолжение оптимизации WordPress 3.0 для повышения скорости админки. VDS от RuWEB, FreeBSD 8 Apache 2.2 itk, ngnix, PHP 5.2 ( как модуль апача ), eAccelerator, memcache. Фронтэнд WordPress закеширован WP Super Cache поэтому проблем нет. А вот админка тупит. Ну и страницы кешированые тупят. MySQL я уже тут оптимизировал , и судя по WP Tuner проблем с производительностью базы нет. Четкое ощущение что тормозит либо какой то скрипт, либо апач, либо PHP.

Для оценки качества оптимизации взял ApacheBenchmark  ( ab ) с параметрами ab –n100 –c20 http://site.ru/wp-admin/edit.php ( это страница просмотра постов в админке WordPress ). В качестве критерия скорости и качества взял три параметра отдаваемых ab: Request Per Second ( RPS ) , Time Taken for Test ( TT ), Failed transfers ( F ). На мой взгляд этих значение для качества оптимизации VDS более чем достаточно.

После запуска команды я смотрел top в putty и обновлял server-status. Ну и отключал внешних посетителей для чистоты экспериментов. Если по top было видно что в какой то момент апач лезет в своп, то это как правило приводило к большой величене Failed ( F ).

В процессе тестов я возился с настройками апача ( MaxClients, MaxRequestsPerChils, MaxSpareServers, KeepAlive и т.д ), с настройками eAccelerator ( shm_size, shm_ttl, shm_only, compress и т.д. ). Отдельно стоит отметить настройку PHP как CGI. Производительность вырастает раза в два, а то и больше, но я не смог сохранить при этом приемлемое количество Failed, поэтому в это статье не пишу. Но потенциально php-cgi несомненно наиболее интересная настройка.

Мои же эксперименты показали, что наиболее значимым параметром для моего сервера оказался eaccelerator.shm_size = 64. При манипулировании этим параметром удалось увеличить RPS с 0,5 до 1,1 а F уменьшить с 93 до 0 !!! Остальные настройки не давали таких кардинальных улучшений производительности.

Ниже значения тестов. Всё имхо, никому ничего не советую, если будете повторять настройки – всё на ваш страх и риск если чо ).

1. Старт: RPS = 0.5 , TT = 199 , F = 93
2. MaxSpareServers уменьшил до 5 , MaxRequestsPerChils уменьшил до 500,
KeepAlive = Off
RPS = 0.68 , TT = 146 , F = 5 ( ! ) – ЛУЧШЕ
3. KeepAlive = On , MKAR = 30, KATO = 5
RPS = 0.61 , TT = 164 , F = 16 – ХУЖЕ
4. KeepAlive = Off, MaxRequestsPerChils уменьшил до 300,
RPS = 0.45 , TT = 221 , F = 28 – ХУЖЕ
5. MinSpareServers = 3, MaxSpareServers = 7 , MaxRequestsPerChils = 10000,
RPS = 0.5 , TT = 201 , F = 24
6. Удалил папку tmp/eaccelerator и перегрузил VDS ( то есть очистил кеш eaccelerator )
RPS = 0.43 , TT = 230 , F = 41 – УЖАСНО, но значит eaccelerator больше других параметров влияет – копаюсь в его параметрах
7. Shm_size = 64, shm_ttl = 300, compress = 0, prune_period = 1800,
MaxRequestsPerChils = 500,
RPS = 0.63 , TT = 159 , F = 7 – ЛУЧШЕ – агаа!!
8. Shm_only = 1 ( всё в память )
RPS = 0.57 , TT = 175 , F = 26 – ХУЖЕ, но может если дать ему поработать будет лучше, пока отложил
9. Shm_only = 0, shm_size = 32, ttl = 120, compress = 1
RPS = 1.08 , TT = 92 , F = 0 – БИНГО !
10. Shm_size = 20 – столько памяти жрет WordPress по WP Tuner
RPS = 0.77 , TT = 129 , F = 2 – ХУЖЕ

11. Shm_size = 64
RPS = 1.16 , TT = 86 , F = 0 – YEEESS !!!
12. Shm_size = 128
RPS = 1.09 , TT = 91 , F = 1 – в пределах погрешности, но хуже
13. После всего попробовал включить KeepAlive = On
RPS = 0.49, TT = 204 , F = 36 – жуткий показатель, отключил KeepAlive = Off

Итого что удалось добиться:

Было:
RPS = 0.5 , TT = 199 , F = 93
Стало:
RPS = 1.16 , TT = 86 , F = 0

Было http-mpm.conf :
KeepAlive = On
MinSpareServers = 7
MaxSpareServers = 15
MaxRequestsPerChils = 10000
Стало:
KeepAlive = Off
MinSpareServers = 3
MaxSpareServers = 5
MaxRequestsPerChils = 500

Было eaccelerator:
shm_size = 0
shm_ttl = 0
compress = 1
prune_period = 0
Стало eaccelerator:
shm_size = 64
shm_ttl = 120
compress = 1
prune_period = 1800

20 декабря 2010 |

Есть что сказать по теме статьи? Пожалуйста - пишите!