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

Я думаю, очень медленный DNS

ищу совета по поводу моего нового VPS, который я установил с помощью друга. Кажется, что все работает хорошо, и страницы загружаются быстро после загрузки первой страницы, загрузка первой страницы занимает до десяти секунд даже для простых текстовых веб-сайтов.

Я предполагаю, что это проблема, связанная с DNS (или это может быть связано с Apache?), Поскольку IP-адрес решается, может ли кто-нибудь объяснить, прав ли я и как это исправить?

Домены: bradfordians.co.uk, castlegardenspreschool.com и pezcuckow.com

Большое спасибо за совет!


Может ли кто-нибудь подтвердить, испытывают ли они замедление, которое я описываю?


Выход w:

17:24:40 up  6:22,  2 users,  load average: 0.64, 0.39, 0.45
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    130.88.177.204   16:44   38:00   0.02s  0.02s -bash
root     pts/1    130.88.177.204   17:24    0.00s  0.01s  0.00s w

Выход бесплатно:

             total       used       free     shared    buffers     cached
Mem:          2048        320       1727          0          0          0
-/+ buffers/cache:        320       1727
Swap:            0          0          0

Начало топа:

top - 17:26:46 up  6:25,  2 users,  load average: 0.21, 0.29, 0.41
Tasks:  81 total,   1 running,  80 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2097152k total,   328552k used,  1768600k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         
    1 root      18   0  2156  668  572 S  0.0  0.0   0:00.23 init                                                                             
 1350 mysql     15   0  125m  15m 4248 S  0.0  0.8   0:05.74 mysqld                                                                           
 1702 root      18   0 10008 2836 2292 S  0.0  0.1   0:00.02 sshd                                                                             
 1710 root      15   0  3844 1540 1248 S  0.0  0.1   0:00.02 bash                                                                             
 3580 root      18   0  3244  436  328 S  0.0  0.0   0:00.05 da-popb4smtp                                                                     
 3589 nobody    19   0  9136 1352  944 S  0.0  0.1   0:00.21 directadmin  

Сверху, пока сервер находится под разумной нагрузкой:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         
 1350 mysql     15   0  126m  15m 4252 S 25.1  0.8   0:14.37 mysqld                                                                           
31859 apache    15   0 50436  41m 1988 S  0.3  2.0   0:00.85 httpd                                                                            
32146 apache    15   0 50464  41m 1972 S  0.3  2.0   0:00.75 httpd                                                                            
    1 root      18   0  2156  668  572 S  0.0  0.0   0:00.23 init                                                                             
 1702 root      18   0 10008 2836 2292 S  0.0  0.1   0:00.02 sshd     

Я получаю очень странные результаты испытаний на ударную нагрузку, может ли это быть связано?

http://loadimpact.com/view-test.php?testlogid=420600

Не думаю, что это проблема DNS ... Разрешение DNS было для меня очень быстрым.

ikbenbart$ dig  castlegardenspreschool.com

; <<>> DiG 9.6.0-APPLE-P2 <<>> castlegardenspreschool.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44600
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;castlegardenspreschool.com.    IN  A

;; ANSWER SECTION:
castlegardenspreschool.com. 14390 IN    A   78.129.132.155

;; Query time: 7 msec
;; SERVER: 192.168.220.51#53(192.168.220.51)
;; WHEN: Mon Mar 28 17:53:06 2011
;; MSG SIZE  rcvd: 60

Единственная вещь, которая поразила меня, когда задержка пинга:

ikbenbart$  ping 78.129.132.155
PING 78.129.132.155 (78.129.132.155): 56 data bytes
64 bytes from 78.129.132.155: icmp_seq=0 ttl=54 time=23.482 ms
64 bytes from 78.129.132.155: icmp_seq=1 ttl=54 time=21.030 ms
64 bytes from 78.129.132.155: icmp_seq=2 ttl=54 time=24.165 ms
64 bytes from 78.129.132.155: icmp_seq=3 ttl=54 time=22.786 ms
64 bytes from 78.129.132.155: icmp_seq=4 ttl=54 time=19.822 ms
64 bytes from 78.129.132.155: icmp_seq=5 ttl=54 time=21.464 ms
64 bytes from 78.129.132.155: icmp_seq=6 ttl=54 time=354.739 ms
64 bytes from 78.129.132.155: icmp_seq=7 ttl=54 time=21.032 ms
64 bytes from 78.129.132.155: icmp_seq=8 ttl=54 time=21.691 ms
64 bytes from 78.129.132.155: icmp_seq=9 ttl=54 time=20.745 ms
64 bytes from 78.129.132.155: icmp_seq=10 ttl=54 time=346.652 ms
64 bytes from 78.129.132.155: icmp_seq=11 ttl=54 time=21.422 ms
64 bytes from 78.129.132.155: icmp_seq=12 ttl=54 time=291.492 ms
64 bytes from 78.129.132.155: icmp_seq=13 ttl=54 time=622.309 ms
64 bytes from 78.129.132.155: icmp_seq=14 ttl=54 time=339.109 ms
64 bytes from 78.129.132.155: icmp_seq=15 ttl=54 time=567.751 ms
64 bytes from 78.129.132.155: icmp_seq=16 ttl=54 time=170.745 ms
64 bytes from 78.129.132.155: icmp_seq=17 ttl=54 time=465.188 ms

Там много всплесков ... Как нагрузка на сервер? Попробуйте запустить команду w и free -mи посмотрите, что вы получите.

Можете добавить nameserver 8.8.8.8 на вершину /etc/resolv.conf чтобы узнать, не проблема ли это DNS.

Я заметил несколько вещей, которые вы можете проверить:

  • В Firebug Расширение для FireFox очень полезно при диагностике подобных проблем со скоростью / загрузкой страницы (см. вкладку «Сеть»). YSlow - это связанное расширение, которое может предлагать способы повышения производительности (имейте в виду, что не все предложения могут быть действительны для вашего сайта).
  • Из нескольких загрузок тестовых страниц, которые я сделал, я никогда не видел проблем с DNS.
  • Многие из ваших изображений очень большие. Попробуйте оптимизировать их или изменить форматы для получения потенциально значительных преимуществ (например, PNG в JPG).
  • Рассмотрите возможность минимизации некоторых из ваших файлов JavaScript.
  • Рассмотрите возможность отключения mod_deflate хотя бы временно для тестирования. Я обнаружил, что на серверах с медленными процессорами, которые сильно загружены, вы можете получить заметное увеличение производительности, не сжимая страницы. YMMV, но попытка не повредит.
  • На сайте вашего дошкольного учреждения есть 404 ошибки.
  • На дошкольном сайте были наиболее серьезные проблемы с производительностью, которые могли быть связаны с количеством файлов, которые требовалось загрузить (35). Каждый из этих файлов при загрузке использует клиент Apache. Если у вашего Apache MaxClients всего 50, то пара людей, загружающих вашу страницу одновременно, может привести к тому, что 50 будут задействованы очень быстро, что приведет к задержке или тайм-ауту подключений после этого. Обратите внимание, что наличие 35 файлов на странице само по себе неплохо, но вы должны знать, как это влияет на производительность вашего сайта и загрузку страниц.
  • Убедитесь, что Apache MaxClients достаточно высок, чтобы обслуживать количество одновременных пользователей, но недостаточно высок, чтобы использовать всю вашу оперативную память (тем более, что вы также используете MySQL).
  • Другой способ уменьшить нагрузку на Apache, но увеличить количество обслуживаемых файлов - это использовать более производительный веб-сервер, например lighttpd / nginx, для всего статического контента (JavaScript, CSS, изображения) и позволить Apache просто обслуживать тяжелые страницы PHP.
  • Использование mod_expires может помочь уменьшить количество перезагрузок контента с течением времени.
  • Убедитесь, что вы используете какой-либо кеш кода операции PHP (APC, eAccelerator).
  • Вы можете использовать ab (ApacheBench) на своем сервере для оценки производительности своих сайтов. Я бы использовал его сейчас, чтобы получить базовый уровень, а затем после каждой попытки улучшить производительность, чтобы увидеть, каков результат. Протестируйте файлы различных типов (PHP, HTML, CSS, изображения и т. Д.). Бенчмаркинг также может указать вам на узкое место вашего сайта (ЦП, ОЗУ, ввод-вывод и т. Д.).

Я бы начал с просмотра вывода модуля состояния Apache и посмотрел, действительно ли проблема связана с максимальным увеличением количества доступных клиентов. Если доступно много клиентов, но сайт все еще работает медленно, могут возникнуть другие более тонкие проблемы.