У меня есть сервер Ubuntu LAMP в virtualbox, который я построил из iso. Я настроил вторичный сетевой адаптер только для хоста, чтобы я мог подключиться к нему через ssh и напрямую подключиться к своему браузеру. Затем я импортировал довольно тяжелый сайт Drupal, изменения управлялись и экспортировались через git. Мой вопрос заключается в следующем: как мне настроить Apache для лучшей производительности в ситуации, когда я знаю, что я буду единственным, кто будет делать запросы? Некоторые из них улучшили отклик, уменьшив MaxClient и MinimumSpare, но хотелось бы, чтобы он реагировал еще быстрее.
В настоящее время у меня есть 2 ядра и 4G RAM, и я могу взять для этого до 4 ядер и 12G от своего хоста, не испытывая особого влияния.
Имея это в виду, я наблюдал топ во время загрузки страниц, и я редко вижу, как apache2 использует более одного ядра, поэтому проблема может быть в большей мощности. Я достигал некоторых пределов выделения памяти, но затем я увеличил права на использование PHP до 1G, и они были разрешены. Это тяжелый, динамичный сайт.
$ sed '/^#/ d' /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
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 1
MaxSpareServers 10
MaxClients 30
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 5
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 30
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 5
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 30
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<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 httpd.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/
Задача ещё не решена.
Других решений пока нет …