Новый год приносит новые возможности. Все началось с того что 4 января 2021 года я начал замечать отвал сайтов. С периодичностью в 5-15 минут, получал СМС от Яндекс Метрика — сайт не доступен. При попытках войти на сайт видел ошибку 504 Gateway Time-out. Первое что я начал это изучение сервера который находится у меня в REG.RU. Визуально, из того что я вижу — конкретного увидеть ничего не получилось. Резкая нагрузка под 100% оперативная память и процессор, при этом файл подкачки (swap) который как бы должен был компенсировать нагрузку на оперативку всегда занят на 0,26 мб…
Я начал сомневаться что мой тариф Cloud-2a работает на SSD дисках, и сомневаюсь об этом до сих пор. Ну ладно, обратился в техническую поддержку. Не смотря на праздники которые в РФ с начала года до 10 январе мне ответили, и помогли разобраться с проблемой аномальной нагрузки. И получаю ответ :
Ответ от технической поддержки REG.RU по поводу моего сервера на тарифе Cloud-2a.
Из-за большого потребления оперативной памяти в работе сайта могут возникать описанные вами проблемы. Для решения этой проблемы рекомендую обратиться к разработчикам вашего сайта для оптимизации работы скриптов вашего сайта. Если оптимизация невозможна, то рекомендую рассмотреть повышение тарифа с большим объемом оперативной памяти.
# ps aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND www-root 16636 5.7 7.3 361876 74560 ? S 10:18 1:28 /opt/php80/bin/php-cgi php www-root 16556 5.6 6.5 354436 66056 ? R 10:17 1:30 /opt/php80/bin/php-cgi php mysql 6236 3.4 6.3 1777620 64536 ? Ssl Jan03 24:52 /usr/sbin/mysqld www-root 14765 4.5 5.9 347708 60224 ? S 09:55 2:13 /opt/php80/bin/php-cgi php www-root 14672 2.6 5.6 725724 56832 ? S 09:54 1:17 /opt/php80/bin/php-cgi php www-root 15943 2.3 5.5 725128 56632 ? S 10:09 0:48 /opt/php80/bin/php-cgi php www-root 15543 3.3 5.5 725132 56512 ? S 10:04 1:18 /opt/php80/bin/php-cgi php www-root 13630 3.8 5.5 725792 56320 ? S 09:44 2:16 /opt/php80/bin/php-cgi php www-root 15545 2.8 5.5 725628 56024 ? S 10:04 1:06 /opt/php80/bin/php-cgi php www-root 17801 0.8 4.5 332692 45832 ? S 10:37 0:02 /opt/php80/bin/php-cgi php www-root 17803 0.5 4.1 328440 41632 ? S 10:37 0:02 /opt/php80/bin/php-cgi php
При просмотре потребления памяти выяснил, что большую часть оперативной памяти занимают скрипты ваших сайтов. В качестве подтверждения прикладываю вывод команды ps aux
# free -h total used free shared buff/cache available Mem: 990M 766M 68M 1.5M 156M 86M Swap: 1.0G 476M 547M
Однако, заметил что на данный момент у вас повышенное потребление оперативной памяти. В качестве подтверждения прикладываю вывод команды free -h.
# w 10:40:11 up 12:53, 1 user, load average: 0.19, 0.44, 0.46 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 46.0.156.25 10:30 3.00s 0.08s 0.01s w
Так же критической нагрузки на процессор не увидел. В качестве подтверждения прикладываю вывод команды w.
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 489M 0 489M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 20M 477M 4% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/sda1 50G 14G 35G 29% / tmpfs 100M 0 100M 0% /run/user/0
Проблем со свободным дисковым пространством не наблюдаю. На данный момент у вас занято 29% дискового пространства. Это примерно 14Gb. В качесвте подтверждения прикладываю вывод команды df -h.
На данный момент вижу, что вы используете тариф Cloud-2a. При просмотре потребления оперативной памяти вижу, что на данный момент у вас занято 922М.
С текущим потреблением оперативной памяти, рекомендую рассмотреть переход на тариф Cloud-3b, где доступно до 2Гб оперативной памяти. Не ожида
Через несколько часов проблема повторилась. И я пошел мучать техническую поддежку дальше. Тут я получаю такой ответ :
Вижу завершение mysql из-за нехватки оперативной памяти:
Jan 4 14:15:15 37-140-198-68 mysqld: 2022-01-04 14:15:15 0 [ERROR] mysqld: Out of memory (Needed 128663552 bytes)
В логах запросов к сайту проблем не наблюдаю(не вижу аномального всплеска или намеренной атаки). Настроил лог atop, если ситуация повториться, отпишите.
Ситуация опять повторилась через час… И снова обращение в техническую поддержку.
С нашей стороны запустили сервер MySQL, сейчас сайты, указанные вами, доступны. Но из-за большой нагрузки на оперативную память, непонятно, как долго MySQL сервер будет работать. Больше всего ресурсы использовали процессы php:
[root@37-140-198-68 ~]# ps aux | grep www-root | grep -v grep www-root 1424 1.7 5.4 352108 55536 ? S 14:30 0:51 /opt/php80/bin/php-cgi php www-root 2426 2.2 5.8 347608 59700 ? S 14:44 0:49 /opt/php80/bin/php-cgi php www-root 2500 1.9 5.2 339468 52972 ? S 14:44 0:41 /opt/php80/bin/php-cgi php www-root 2514 2.5 5.6 353496 57104 ? S 14:44 0:53 /opt/php80/bin/php-cgi php www-root 2527 2.0 5.3 351268 53884 ? S 14:44 0:43 /opt/php80/bin/php-cgi php www-root 2529 2.3 5.5 353300 56488 ? S 14:44 0:50 /opt/php80/bin/php-cgi php www-root 4263 0.3 5.0 342684 51620 ? S 15:03 0:03 /opt/php80/bin/php-cgi php www-root 4883 1.0 4.1 324152 41620 ? S 15:18 0:00 /opt/php80/bin/php-cgi php www-root 4894 1.2 3.2 325896 33220 ? S 15:18 0:00 /opt/php80/bin/php-cgi php
Проблема с торможением было вызвано тем, что у вас была огромная нагрузка на CPU, которая началась из-за того, что системе не хватало оперативной памяти, и данные из ОЗУ начали записываться в swap раздел на жёстком диске. Когда начинает использоваться swap файл, активно используется CPU, отсюда вытекает нагрузка на CPU и диск. С нашей стороны для решения данной проблемы рекомендуем перейти на тариф Cloud-3b или CLoud-3c.
Итого почему же я остался на REG.RU и перешел на тариф который дороже Cloud-3b
В общем посмотрел тарифы конкурентов, изучил метрику и прогресс трафика за 2021 год и подумал что пора обновлять железо. Обновиться можно на свое железо и настроить сервер дома на коленке, или продолжить зарабатывать 24/7 бесперебойно отдавая контент миру. Естественно домашний сервер это круто и ресурсов там по сравнению с Cloud-3b в 16 раз больше)) Но есть много но! Во первых, основная аудитория у меня из РФ то держать сервер в Украине не целесообразно. Во вторых ширина домашнего канала достаточно узкая. А то как подгадил нам интернет провайдер Тенет все знают, до нового года в нашем доме буквально 2-3 суток в неделю отсутствовал напрочь, или частично доступ в интернет. То они меняли оборудование, то что то там поломалось, то банально света не было. Хотя они заявляют что у них энергонезависимое оборудование. В общем перешел на Cloud-3b и уже через час начал наблюдать как быстро отрабатывают сайты в браузере. Оперативная память при этом занята на 920 — 1022 MB из доступных мне на сервере 1837 MB.