Итак, у всех уже есть свой личный VPS, арендованный для различных нужд. Работает и хорошо. Но бывает что что-то идет не так, и ничего не работает или работает плохо. Сегодня я расскажу какие шаги предпринять что бы приблизительно понять что вообще происходит.
И так, наш сервер внезапно стал недоступен, скорости нет, клиент NextCloud не может синхронизироваться и т.д. первое что делаем, открываем почту и проверяем не завалилось ли письмо от правайдера с напоминанием об оплате в спам).
Второе, открываем cmd в Windows и просто пингуем сервер, желательно посмотреть не четыре стандартных ответа, а добавить ключ -t и подождать сообщений 30-50. (ping X.X.X.X -t)
Далее внезависимости от того что показал ping(только потери, большие задержки или любые другие варианты), открываем программу WinMTR, вводим адрес вашего сервера и нажимаем старт. Здесь мы увидим маршрут до вашего сервера и где начинаются проблемы. Начиная с домашнего роутера и заканчивая маршрутизатором хостера, который является для вашего сервера шлюзом выхода в интернет.
!Если вы видите потери на промежуточных маршрутизаторах, но при этом не видите потерь на самом сервере(последний IP в списке), то на них можно не обращать внимания, т.к. маршрутизаторы могут дропать ICMP запросы, просто потому что заняты или так решил админ конкретного маршрутизатора!
Если потери начинаются на вашем домашнем или мобильном провайдере, и продолжаются вплоть до вашего сервера, значит проблемы у них, стоит обратится в тех поддержку, хотя бы узнать сроки устранения.
Если потери начинаются на оборудовании хостера, то тогда вам к ним, за тем же самым. И обязательно приложите результаты работы MTR.
Если потери где-то в середине маршрута, вне зоны контроля ни хостера ни домашнего провайдера, увы, тут только ждать пока "само пройдет". Но написать хостеру или провайдеру(к кому ближе начинаются потери) стоит, может быть они через свои тикетницы с аплинками ускорят решение проблемы.
Вообще очень хорошо сделать такую трассировку когда проблем нет, и сохранить ее результаты, будет с чем сравнивать, т.к. и маршрут может изменится и задержки вырасти и все это станет видно при сравнении трейсов.
Iperf3
Далее, если ваш сервер пингуется но плохо что-то работает имеет смысл проверить канал от вас до сервера. Проверить его можно при помощи утилиты iperf3, он есть как для Windows, так и для Linux, в линукс все достаточно просто, устанавливается командой apt-get install iperf3 или yum install iperf3 (возможно предварительно нужно будет установить epel-release) далее открываем на фаерволе порт 5201 и запускаем командой iperf3 -s. Для виндоус качаем exe, распаковываем, открываем командную строку Windows она же cmd, командой cd заходим в папку с распакованным экзешником и запускаем командой .\iperf3.exe -c X.X.X.X
Что бы проверить скорость в обратную сторону, нужно запустить программу дополнительно с ключом -R т.е. iperf3 -c X.X.X.X -R
Собственно так мы сможем увидеть сколько можно прокачать из дома до самого сервера и обратно.
Еще раз повторю что все эти манипуляции лучше всего провести сразу после покупки сервера и сохранить результаты, что бы потом была возможность сравнить. Так же у многих хостеров есть тестовый период 1-3 дня (обычно доступны после запроса в техническую поддержку), и/или тестовые looking glass сайты, с которых можно попинговать удаленные ресурсы, скачать тестовые файлы и сделать mtr до интересующих вас ресурсов.
Процессы
Со связью до сервера разобрались, если с ней все хорошо, а все равно что-то не то, бывает полезно посмотреть процессы и сколько они потребляют, в этом нам поможет утилита htop
Подключаемся к серверу по ssh даем команду htop, если сервер рапортует что такой команды не знает, значит утилиту нужно установить, если у вас Debian/Ubuntu делается это командой apt-get install htop -y, если у вас rhel-based дистрибутив то dnf install htop -y
Здесть нужно обратить внимание на Load average (LA) - чем больше эти три цифры тем условно хуже, но это зависит от количества ядер CPU на сервере, если у вас одно ядро, то значения до 1 нормально, если все три значения приближаются или превышают то значит кол-во задач на сервере превышают его возможности. Для двухядерных систем пороговое значение соответственно это уже будет двойка, для трехядерных тройка и так далее. Первая цифра это нагрузка в течении одной минуты, вторая в течении 5 минут, третья в течении 15. И если кратковременные скачки первой цифры вокруг верхнего значения это еще ничего, то когда туда начинает приближаться вторая и третья это уже совсем не хорошо. Формула конечно там сильно сложнее, но в общих чертах для понимания подойдет и такой рассчет.
Далее можно посмотреть загрузку памяти и свапа, если свап есть, вообще Linux довольно умело обращается с памятью, и при острой ее нехватке он будет отрубать приложения которые пытаются потребить ее сильно много. Об этом вы узнаете по наличию в dmesg сообщений от oomkiller, с указанием что он вырубил. Проверить наличие таких сообщений можно командой
grep -i 'killed process' /var/log/messages
так же в htop можно отсортировать процессы по потреблению CPU и памяти прямо там же в окне, просто тычком мыши, как в любой не консольной программе.
Так же на сервере может закончится место, посмотреть что да как можно командой df -h
В первую очередь вас будет интересовать раздел root он же “/”
Если место есть и его много то идем дальше, а вот если что-то у вас его сожрало, то лучше поискать и почистить, поискать можно командой
du -ah /* 2>/dev/null | sort -rh | head -n 10
Данная команда пройдется по диску, оценит размеры файлов и директорий и покажет 10 наиболее объемных
Безопасно можно удалить логи, или файлы которые вы сами скачали и положили, но забыли про них. Если же не знаете что это за файл, то лучше где-нибудь с кем-нибудь проконсультироваться перед удалением что бы ненароком ничего не прибить.
Ну и конечно ссылка на телегу если будут вопросы пожелания и прочее