Назад | Перейти на главную страницу

Веб-сайт стал медленнее на VPS, намного быстрее на общем хосте. В чем дело?

Мой общий хост приостановил мой веб-сайт из-за перегрузки системы, поэтому я переместил свой веб-сайт на 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