Скачивание изображений с нашего сайта каждый вечер замедляется. По сравнению с дневным временем мы получаем на 50% больше трафика за вечер. По точным данным, в дневные часы почасовое количество просмотров страниц составляет около 20 тысяч, в вечерние часы почасовое количество просмотров страниц составляет около 30 тысяч.
Мы на Apache, Centos 5, PHP 5, MySQL.
На графике ниже показано время загрузки определенного изображения размером 3 МБ с определенного удаленного сайта каждые 10 минут. По мере увеличения посещаемости сайта скорость загрузки падает вдвое.
Остальная часть памяти, около 20 ГБ, остается для использования Linux. vmstat, free -m не показывают подкачки. Вот вывод vmstat:
# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 220 409700 491656 25727136 0 0 9 42 1 1 1 0 98 0 0
2 0 220 408076 491656 25727140 0 0 0 2032 1916 1992 2 1 98 0 0
0 0 220 405848 491656 25727180 0 0 0 0 1631 1325 1 0 99 0 0
0 0 220 404992 491656 25727180 0 0 0 0 1508 1203 1 0 99 0 0
3 0 220 405228 491656 25727216 0 0 0 0 1548 1600 2 1 98 0 0
0 0 220 404236 491656 25727224 0 0 0 0 1860 1645 2 1 97 0 0
1 0 220 403916 491656 25727284 0 0 0 2512 1817 1035 2 1 97 0 0
0 0 220 403900 491656 25727284 0 0 0 2164 1826 1678 1 1 98 0 0
0 0 220 408908 491656 25727312 0 0 0 828 1636 952 1 0 99 0 0
0 0 220 408544 491656 25727312 0 0 0 0 1844 1991 1 1 98 0 0
1 0 220 407856 491664 25727328 0 0 180 0 1567 1194 4 0 96 0 0
0 0 220 406772 491664 25727460 0 0 0 0 1290 1049 4 1 95 0 0
0 0 220 406964 491664 25727548 0 0 28 208 1589 904 1 0 99 0 0
0 0 220 406840 491664 25727560 0 0 0 1796 1885 1396 1 0 99 0 0
1 0 220 405136 491664 25727612 0 0 0 0 1727 1280 1 0 98 0 0
0 0 220 404400 491664 25727628 0 0 24 0 1807 1494 1 0 98 0 0
1 2 220 403996 491668 25727812 0 0 232 0 2221 1633 1 1 97 1 0
0 0 220 404228 491668 25727844 0 0 20 1776 1673 1332 1 0 97 1 0
0 0 220 403688 491672 25727988 0 0 68 348 1508 977 1 0 99 0 0
0 0 220 403444 491672 25728004 0 0 0 0 1436 900 1 0 99 0 0
0 0 220 403948 491672 25728104 0 0 0 0 1413 1131 1 0 99 0 0
1 0 220 392984 491672 25728104 0 0 0 1520 1455 1946 5 2 93 0 0
1 0 220 307264 491672 25728124 0 0 0 12 1829 1520 8 2 91 0 0
4 0 220 306276 491672 25728132 0 0 0 0 1364 1497 7 0 92 0 0
1 0 220 305320 491672 25728160 0 0 0 0 1510 1773 9 1 90 0 0
1 0 220 305444 491672 25728164 0 0 0 0 1620 1666 7 0 93 0 0
1 0 220 304456 491672 25728208 0 0 0 3396 1813 1836 7 0 93 0 0
Поскольку этот конкретный тестовый образ вызывается каждые 10 минут, он должен оставаться в кэше ОС и доставляться из кэша ОС, верно? Процессор вообще не занят. Значит, изображение должно быть доставлено довольно быстро?
В чем заключается проблема, с которой я сталкиваюсь?
-Может ли установка второго жесткого диска только для размещения образов?
-Как насчет использования PHP APC для снижения нагрузки на процессор?
Какие-либо советы по диагностике проблемы?
Спасибо, халук
ОБНОВИТЬ:
По совету Книтти, я установил тот же образ в каталог, смонтированный в памяти.
Ниже представлены результаты за вчерашний день:
объем памяти смонтированный образ размером 3 МБ:
Жесткий диск Изображение 3 МБ:
В среднем они очень близки. На них обоих влияет вечернее движение. Изображение из памяти иногда может быть доставлено медленнее, чем с жесткого диска. Думаю, это говорит мне, что они оба в памяти, какими должны быть.
Так что я думаю, что это не проблема узкого места жесткого диска.
-Может быть, это связано с Apache?
-Или связаны с сетью?
Вот sar -n ALL вывод для вечерних часов. В соответствии с этим мы не отправляем более 400 Кбит / с в среднем за 10 минут. Наша пропускная способность составляет 10 Мбит / с, поэтому мы еще не используем ее даже и половину.
IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
08:10:01 PM lo 0.63 0.63 66.48 66.48 0.00 0.00 0.00
08:10:01 PM eth0 342.69 431.72 59755.43 368330.14 0.00 0.00 0.00
08:10:01 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:10:01 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:20:01 PM lo 0.43 0.43 45.08 45.08 0.00 0.00 0.00
08:20:01 PM eth0 310.96 389.32 62960.35 327811.74 0.00 0.00 0.00
08:20:01 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:20:01 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:30:01 PM lo 0.68 0.68 71.97 71.97 0.00 0.00 0.00
08:30:01 PM eth0 341.29 421.12 69692.70 354844.36 0.00 0.00 0.00
08:30:01 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:30:01 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:40:01 PM lo 0.79 0.79 87.60 87.60 0.00 0.00 0.00
08:40:01 PM eth0 365.76 451.49 66813.87 385379.38 0.00 0.00 0.00
08:40:01 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:40:01 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:40:01 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
08:50:01 PM lo 0.47 0.47 49.49 49.49 0.00 0.00 0.00
08:50:01 PM eth0 336.77 413.37 57303.78 357556.44 0.00 0.00 0.00
08:50:01 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:50:01 PM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
08:00:01 PM totsck tcpsck udpsck rawsck ip-frag
08:00:01 PM 218 21 9 0 0
08:10:01 PM 200 21 9 0 0
08:20:01 PM 211 22 9 0 0
08:30:01 PM 205 22 9 0 0
08:40:01 PM 191 21 9 0 0
08:50:01 PM 201 21 9 0 0
Похоже на проблему с сетью. Сделайте захват пакета загрузки изображения как в непиковые, так и в пиковые часы. Сравните два и посмотрите, получаете ли вы много RST.
Вам необходимо установить приоритеты для пакетов TCP ACK. Видеть http://phix.me/dm/