Мой общий хост приостановил мой веб-сайт из-за перегрузки системы, поэтому я переместил свой веб-сайт на VPS с 4 ГБ оперативной памяти. Но почему-то сайт стал очень медленным.
Это вывод vmstat -
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 3050500 0 0 0 0 0 1 0 0 0 0 100 0 0
Вот результат теста Apache Benchmark для СТАТИЧЕСКОЙ html-страницы, которую я запустил на самом сервере:
Benchmarking www.ask-oracle.com (be patient)...apr_poll: The timeout specified has expired (70007)
Total of 20 requests completed
Обновить:
Конфигурация сервера:
Теперь загрузка занимает почти вдвое больше времени, один и тот же сайт работал намного быстрее на виртуальном хостинге. Я знаю, что мне нужно настроить некоторые параметры, но не знаю, с чего начать?
Я уже пробовал оптимизировать apache, mysql и т. Д.
Обновление 2:
Низкая загрузка ЦП, см. Вывод о времени безотказной работы:
11:09:02 up 7 days, 21:26, 1 user, load average: 0.09, 0.11, 0.09
Обновление 3:
Когда я загружаю любую веб-страницу, браузер долгое время показывает «Ожидание», а затем страница загружается быстро. Поэтому я подозреваю, что сервер может принимать только ограниченные соединения и удерживает дополнительные соединения в состоянии ожидания. Как это проверить?
Обновление 4: Ниже приведены результаты выполнения netperf.
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to localhost.localdomain (127.0.0.1) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.00 9615.40
[root@ip-118-139-177-244 j3ngn5ri6r01t3]#
Вот настройки Apache MPM из httpd.conf, все в порядке?
<IfModule worker.c>
StartServers 5
MaxClients 100
MinSpareThreads 50
MaxSpareThreads 250
ThreadsPerChild 125
MaxRequestsPerChild 10000
ServerLimit 100
</IfModule>
Я предполагаю: ваш общий хост не ограничивал ваш процессор и был даже быстрее, чем ваш текущий VPS. Также это может быть то, что происходит с большим количеством VPS, которые продаются слишком далеко. Ваш VPS размещен на общей машине, и вы можете не использовать все циклы процессора. Также может быть очень плохой ввод-вывод или медленное интернет-соединение.
Вы не знаете, что происходит над вашим VPS на хост-машине, попробуйте выяснить это :).
запустить netstat -anp | grep TIME_WAIT | wc -l
Это вернет количество запросов, ожидающих ответа от apache. Если это число необычно велико, настройте параметры apache, чтобы он мог обрабатывать больше запросов в секунду без ущерба для общей производительности сервера.
Настройте параметры MPM преформы apache следующим образом:
<IfModule prefork.c>
StartServers 25
MaxClients 500
MaxRequestsPerChild 10000
ServerLimit 500
</IfModule>
Каковы ваши настройки apache MPM в httpd.conf? Я попытался подключиться к вашему серверу, и даже отправка заголовка обратно занимает 5-10 секунд.
Плохо написанные плагины и темы wordpress могут снизить производительность, но обычно они будут извергать ошибки в файлах журналов или мешать доступу mysql / диску, что, похоже, не происходит для вас.
Обновить: Вы можете попробовать запустить prefork вместо worker, особенно с 4 ГБ оперативной памяти. Wordpress рекомендует здесь: http://codex.wordpress.org/High_Traffic_Tips_For_WordPress