Проблема SSH-подключения: не могу подключиться к серверу
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Обнаружение и устранение утечек памяти на Linux-серверах, определение процесса, потребляющего RAM, и применение краткосрочных и долгосрочных решений.
Утечка памяти происходит, когда приложение не освобождает должным образом используемую память, что приводит к непрерывному росту использования RAM со временем. В конечном итоге система исчерпывает память, пространство подкачки заполняется, и сервер замедляется или зависает.
Типичные признаки утечки памяти:
free -h постепенно уменьшается# Общее состояние памяти
free -h
# Подробная информация о памяти
cat /proc/meminfo
# Журналы OOM-killer
dmesg | grep -i 'oom\|killed process\|out of memory'
# Сортировка по использованию памяти
ps aux --sort=-%mem | head -20
# Мониторинг в реальном времени с top
top
# Нажмите 'M' для сортировки по памяти
# Более детальный анализ памяти с smem
sudo apt install smem -y
smem -r -k | head -20
# Найти PID конкретного процесса
pgrep -f app_name
# Записывать использование памяти каждые 30 секунд
while true; do
echo "$(date): $(cat /proc/PID/status | grep VmRSS)"
sleep 30
done
# Установить лимит памяти Node.js
node --max-old-space-size=512 app.js
# PM2 автоперезапуск при достижении лимита памяти
pm2 start app.js --max-memory-restart 500M
# /etc/php/8.x/fpm/pool.d/www.conf
# pm.max_requests = 500
# memory_limit = 256M
# Очистить кэш страниц (безопасно)
sync && echo 1 > /proc/sys/vm/drop_caches
# Перезапустить сервис
sudo systemctl restart service_name
# Лимит памяти через systemd
# [Service]
# MemoryMax=512M
# Создать файл подкачки
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Для устранения утечек памяти сначала определите с помощью ps aux и smem, какой процесс потребляет память, затем подтвердите утечку, отслеживая рост со временем. В краткосрочной перспективе перезапустите утекающий сервис и примените лимит памяти через systemd. Для постоянного исправления изучите исходный код приложения с помощью таких инструментов, как Valgrind (C/C++), heapdump (Node.js) или jmap (Java).
Высокое использование памяти может быть нормальным. При утечке памяти использование RAM непрерывно растёт и никогда не уменьшается. Если после перезапуска сервера оно возвращается к норме, значит есть утечка.
OOM-killer — это механизм ядра Linux, который автоматически убивает наиболее ресурсоёмкий процесс для спасения системы при исчерпании памяти. Используйте 'dmesg | grep oom', чтобы увидеть, какой процесс был убит.
Очистка кэша страниц (echo 1) в целом безопасна, но временно увеличивает дисковый I/O. Избегайте использования в часы пик в производственной среде.
Постоянное исправление требует изучения исходного кода приложения. Используйте инструменты Valgrind (C/C++), heapdump (Node.js) или jmap (Java). В краткосрочной перспективе примените лимит MemoryMax через systemd.
Руководство по решению проблем SSH-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для SSH-порта и шаги по устранению неполадок.
Руководство по решению проблем RDP-подключения: правила файрвола Path.net, Default Block, создание правила фильтрации для порта RDP и шаги по устранению неполадок.
Руководство по сетевому тестированию с помощью WinMTR и Linux MTR, создание правила фильтрации ICMP и отправка результатов в службу поддержки. Диагностика потери пакетов.