Мониторинг системных ресурсов (htop, top) — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Мониторинг системных ресурсов (htop, top) = == 1. Подготовка системы == * Войдите в систему под…»)
 
Строка 11: Строка 11:
  
 
1. Обновите список пакетов:
 
1. Обновите список пакетов:
<code>
+
<code>sudo apt update</code>
sudo apt update
 
</code>
 
  
 
2. Установите htop:
 
2. Установите htop:
<code>
+
<code>sudo apt install htop</code>
sudo apt install htop
 
</code>
 
  
 
=== Установка дополнительных инструментов ===
 
=== Установка дополнительных инструментов ===
  
 
1. Установите дополнительные утилиты мониторинга:
 
1. Установите дополнительные утилиты мониторинга:
<code>
+
<code>sudo apt install iotop nethogs nload iftop</code>
sudo apt install iotop nethogs nload iftop
 
</code>
 
  
 
2. Установите системные утилиты:
 
2. Установите системные утилиты:
<code>
+
<code>sudo apt install sysstat dstat</code>
sudo apt install sysstat dstat
 
</code>
 
  
 
== 3. Использование htop ==
 
== 3. Использование htop ==
Строка 37: Строка 29:
  
 
1. Запустите htop:
 
1. Запустите htop:
<code>
+
<code>htop</code>
htop
 
</code>
 
  
 
2. Запустите htop с правами root для просмотра всех процессов:
 
2. Запустите htop с правами root для просмотра всех процессов:
<code>
+
<code>sudo htop</code>
sudo htop
 
</code>
 
  
 
=== Основные функции htop ===
 
=== Основные функции htop ===
Строка 79: Строка 67:
  
 
1. Запустите top:
 
1. Запустите top:
<code>
+
<code>top</code>
top
 
</code>
 
  
 
2. Запустите top с обновлением каждые 2 секунды:
 
2. Запустите top с обновлением каждые 2 секунды:
<code>
+
<code>top -d 2</code>
top -d 2
 
</code>
 
  
 
3. Запустите top для конкретного пользователя:
 
3. Запустите top для конкретного пользователя:
<code>
+
<code>top -u username</code>
top -u username
 
</code>
 
  
 
=== Основные функции top ===
 
=== Основные функции top ===
Строка 112: Строка 94:
  
 
1. Создайте конфигурационный файл:
 
1. Создайте конфигурационный файл:
<code>
+
<code>nano ~/.toprc</code>
nano ~/.toprc
 
</code>
 
  
 
2. Настройте отображение:
 
2. Настройте отображение:
<code>
+
<code>Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=3.0, Curwin=0</code>
# Настройки top
+
<code>Def fieldscur=AEHIOQTWKNMbcdfgjplrsuvyXZ</code>
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=3.0, Curwin=0
+
<code>winflags=32569, sortindx=10, maxtasks=0</code>
Def fieldscur=AEHIOQTWKNMbcdfgjplrsuvyXZ
+
<code>graph_cpus=2, graph_mems=2</code>
winflags=32569, sortindx=10, maxtasks=0
+
<code>summclr=1, msgsclr=1, headclr=3, taskclr=1</code>
graph_cpus=2, graph_mems=2
 
summclr=1, msgsclr=1, headclr=3, taskclr=1
 
</code>
 
  
 
== 5. Мониторинг CPU ==
 
== 5. Мониторинг CPU ==
Строка 131: Строка 108:
  
 
1. Просмотрите информацию о процессоре:
 
1. Просмотрите информацию о процессоре:
<code>
+
<code>lscpu</code>
lscpu
 
</code>
 
  
 
2. Просмотрите детальную информацию:
 
2. Просмотрите детальную информацию:
<code>
+
<code>cat /proc/cpuinfo</code>
cat /proc/cpuinfo
 
</code>
 
  
 
3. Просмотрите загрузку CPU:
 
3. Просмотрите загрузку CPU:
<code>
+
<code>uptime</code>
uptime
 
</code>
 
  
 
=== Мониторинг в реальном времени ===
 
=== Мониторинг в реальном времени ===
Строка 156: Строка 127:
  
 
1. Просмотрите статистику CPU:
 
1. Просмотрите статистику CPU:
<code>
+
<code>vmstat 1 5</code>
vmstat 1 5
 
</code>
 
  
 
2. Просмотрите детальную статистику:
 
2. Просмотрите детальную статистику:
<code>
+
<code>iostat -c 1 5</code>
iostat -c 1 5
 
</code>
 
  
 
3. Просмотрите информацию о процессах:
 
3. Просмотрите информацию о процессах:
<code>
+
<code>ps aux --sort=-%cpu | head -10</code>
ps aux --sort=-%cpu | head -10
 
</code>
 
  
 
== 6. Мониторинг памяти ==
 
== 6. Мониторинг памяти ==
Строка 175: Строка 140:
  
 
1. Просмотрите общую информацию о памяти:
 
1. Просмотрите общую информацию о памяти:
<code>
+
<code>free -h</code>
free -h
 
</code>
 
  
 
2. Просмотрите детальную информацию:
 
2. Просмотрите детальную информацию:
<code>
+
<code>cat /proc/meminfo</code>
cat /proc/meminfo
 
</code>
 
  
 
3. Просмотрите использование памяти процессами:
 
3. Просмотрите использование памяти процессами:
<code>
+
<code>ps aux --sort=-%mem | head -10</code>
ps aux --sort=-%mem | head -10
 
</code>
 
  
 
=== Мониторинг в htop ===
 
=== Мониторинг в htop ===
Строка 200: Строка 159:
  
 
1. Просмотрите статистику памяти:
 
1. Просмотрите статистику памяти:
<code>
+
<code>vmstat 1 5</code>
vmstat 1 5
 
</code>
 
  
 
2. Просмотрите детальную статистику:
 
2. Просмотрите детальную статистику:
<code>
+
<code>iostat -m 1 5</code>
iostat -m 1 5
 
</code>
 
  
 
3. Просмотрите использование памяти по процессам:
 
3. Просмотрите использование памяти по процессам:
<code>
+
<code>pmap -d $(pgrep process_name)</code>
pmap -d $(pgrep process_name)
 
</code>
 
  
 
== 7. Мониторинг дисков ==
 
== 7. Мониторинг дисков ==
Строка 219: Строка 172:
  
 
1. Просмотрите информацию о дисках:
 
1. Просмотрите информацию о дисках:
<code>
+
<code>lsblk</code>
lsblk
 
</code>
 
  
 
2. Просмотрите использование дисков:
 
2. Просмотрите использование дисков:
<code>
+
<code>df -h</code>
df -h
 
</code>
 
  
 
3. Просмотрите использование inode:
 
3. Просмотрите использование inode:
<code>
+
<code>df -i</code>
df -i
 
</code>
 
  
 
=== Мониторинг I/O операций ===
 
=== Мониторинг I/O операций ===
  
 
1. Запустите iotop для мониторинга I/O:
 
1. Запустите iotop для мониторинга I/O:
<code>
+
<code>sudo iotop</code>
sudo iotop
 
</code>
 
  
 
2. Просмотрите статистику I/O:
 
2. Просмотрите статистику I/O:
<code>
+
<code>iostat -x 1 5</code>
iostat -x 1 5
 
</code>
 
  
 
3. Просмотрите использование дисков:
 
3. Просмотрите использование дисков:
<code>
+
<code>sudo iotop -o</code>
sudo iotop -o
 
</code>
 
  
 
=== Анализ производительности дисков ===
 
=== Анализ производительности дисков ===
  
 
1. Просмотрите статистику дисков:
 
1. Просмотрите статистику дисков:
<code>
+
<code>iostat -d 1 5</code>
iostat -d 1 5
 
</code>
 
  
 
2. Просмотрите детальную информацию:
 
2. Просмотрите детальную информацию:
<code>
+
<code>sudo iotop -a</code>
sudo iotop -a
 
</code>
 
  
 
3. Просмотрите использование дисков по процессам:
 
3. Просмотрите использование дисков по процессам:
<code>
+
<code>sudo iotop -p $(pgrep process_name)</code>
sudo iotop -p $(pgrep process_name)
 
</code>
 
  
 
== 8. Мониторинг сети ==
 
== 8. Мониторинг сети ==
Строка 272: Строка 207:
  
 
1. Просмотрите сетевые интерфейсы:
 
1. Просмотрите сетевые интерфейсы:
<code>
+
<code>ip addr show</code>
ip addr show
 
</code>
 
  
 
2. Просмотрите статистику сети:
 
2. Просмотрите статистику сети:
<code>
+
<code>ip -s link show</code>
ip -s link show
 
</code>
 
  
 
3. Просмотрите активные соединения:
 
3. Просмотрите активные соединения:
<code>
+
<code>ss -tulpn</code>
ss -tulpn
 
</code>
 
  
 
=== Мониторинг сетевого трафика ===
 
=== Мониторинг сетевого трафика ===
  
 
1. Запустите nethogs для мониторинга трафика по процессам:
 
1. Запустите nethogs для мониторинга трафика по процессам:
<code>
+
<code>sudo nethogs</code>
sudo nethogs
 
</code>
 
  
 
2. Запустите iftop для мониторинга трафика:
 
2. Запустите iftop для мониторинга трафика:
<code>
+
<code>sudo iftop</code>
sudo iftop
 
</code>
 
  
 
3. Запустите nload для мониторинга скорости:
 
3. Запустите nload для мониторинга скорости:
<code>
+
<code>nload</code>
nload
 
</code>
 
  
 
=== Анализ сетевой активности ===
 
=== Анализ сетевой активности ===
  
 
1. Просмотрите статистику сети:
 
1. Просмотрите статистику сети:
<code>
+
<code>cat /proc/net/dev</code>
cat /proc/net/dev
 
</code>
 
  
 
2. Просмотрите активные соединения:
 
2. Просмотрите активные соединения:
<code>
+
<code>netstat -tulpn</code>
netstat -tulpn
 
</code>
 
  
 
3. Просмотрите трафик по интерфейсам:
 
3. Просмотрите трафик по интерфейсам:
<code>
+
<code>iftop -i eth0</code>
iftop -i eth0
 
</code>
 
  
 
== 9. Дополнительные инструменты мониторинга ==
 
== 9. Дополнительные инструменты мониторинга ==
Строка 325: Строка 242:
  
 
1. Запустите dstat для комплексного мониторинга:
 
1. Запустите dstat для комплексного мониторинга:
<code>
+
<code>dstat</code>
dstat
 
</code>
 
  
 
2. Настройте отображение:
 
2. Настройте отображение:
<code>
+
<code>dstat -cdngy</code>
dstat -cdngy
 
</code>
 
  
 
3. Сохраните статистику в файл:
 
3. Сохраните статистику в файл:
<code>
+
<code>dstat -cdngy --output /tmp/dstat.csv</code>
dstat -cdngy --output /tmp/dstat.csv
 
</code>
 
  
 
=== Использование sar ===
 
=== Использование sar ===
  
 
1. Просмотрите историческую статистику:
 
1. Просмотрите историческую статистику:
<code>
+
<code>sar -u 1 5</code>
sar -u 1 5
 
</code>
 
  
 
2. Просмотрите статистику памяти:
 
2. Просмотрите статистику памяти:
<code>
+
<code>sar -r 1 5</code>
sar -r 1 5
 
</code>
 
  
 
3. Просмотрите статистику дисков:
 
3. Просмотрите статистику дисков:
<code>
+
<code>sar -d 1 5</code>
sar -d 1 5
 
</code>
 
  
 
=== Создание скриптов мониторинга ===
 
=== Создание скриптов мониторинга ===
  
 
1. Создайте скрипт мониторинга:
 
1. Создайте скрипт мониторинга:
<code>
+
<code>nano /usr/local/bin/system-monitor.sh</code>
nano /usr/local/bin/system-monitor.sh
 
</code>
 
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>
+
<code>echo "=== System Information ==="</code>
#!/bin/bash
+
<code>echo "Hostname: $(hostname)"</code>
 
+
<code>echo "Uptime: $(uptime)"</code>
echo "=== System Information ==="
+
<code>echo "Date: $(date)"</code>
echo "Hostname: $(hostname)"
+
<code>echo "=== CPU Usage ==="</code>
echo "Uptime: $(uptime)"
+
<code>top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1</code>
echo "Date: $(date)"
+
<code>echo "=== Memory Usage ==="</code>
 
+
<code>free -h | grep "Mem:" | awk '{print $3 "/" $2}'</code>
echo "=== CPU Usage ==="
+
<code>echo "=== Disk Usage ==="</code>
top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1
+
<code>df -h | grep -E '^/dev/'</code>
 
+
<code>echo "=== Network Connections ==="</code>
echo "=== Memory Usage ==="
+
<code>ss -tulpn | wc -l</code>
free -h | grep "Mem:" | awk '{print $3 "/" $2}'
+
<code>echo "=== Top Processes by CPU ==="</code>
 
+
<code>ps aux --sort=-%cpu | head -5</code>
echo "=== Disk Usage ==="
+
<code>echo "=== Top Processes by Memory ==="</code>
df -h | grep -E '^/dev/'
+
<code>ps aux --sort=-%mem | head -5</code>
 
 
echo "=== Network Connections ==="
 
ss -tulpn | wc -l
 
 
 
echo "=== Top Processes by CPU ==="
 
ps aux --sort=-%cpu | head -5
 
 
 
echo "=== Top Processes by Memory ==="
 
ps aux --sort=-%mem | head -5
 
</code>
 
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>
+
<code>sudo chmod +x /usr/local/bin/system-monitor.sh</code>
sudo chmod +x /usr/local/bin/system-monitor.sh
 
</code>
 
  
 
== 10. Настройка автоматического мониторинга ==
 
== 10. Настройка автоматического мониторинга ==
Строка 401: Строка 292:
  
 
1. Откройте crontab:
 
1. Откройте crontab:
<code>
+
<code>sudo crontab -e</code>
sudo crontab -e
 
</code>
 
  
 
2. Добавьте задачи мониторинга:
 
2. Добавьте задачи мониторинга:
<code>
+
<code>*/5 * * * * /usr/local/bin/system-monitor.sh >> /var/log/system-monitor.log</code>
# Мониторинг каждые 5 минут
+
<code>0 0 * * * find /var/log -name "*.log" -mtime +7 -delete</code>
*/5 * * * * /usr/local/bin/system-monitor.sh >> /var/log/system-monitor.log
 
 
 
# Очистка логов старше 7 дней
 
0 0 * * * find /var/log -name "*.log" -mtime +7 -delete
 
</code>
 
  
 
=== Настройка алертов ===
 
=== Настройка алертов ===
  
 
1. Создайте скрипт алертов:
 
1. Создайте скрипт алертов:
<code>
+
<code>nano /usr/local/bin/alert-monitor.sh</code>
nano /usr/local/bin/alert-monitor.sh
 
</code>
 
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>
+
<code>CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)</code>
#!/bin/bash
+
<code>if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then</code>
 
+
<code>echo "ALERT: High CPU usage: $CPU_USAGE%" | mail -s "CPU Alert" admin@example.com</code>
# Проверка загрузки CPU
+
<code>fi</code>
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
+
<code>MEM_USAGE=$(free | grep Mem | awk '{printf "%.2f", $3/$2 * 100.0}')</code>
if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
+
<code>if (( $(echo "$MEM_USAGE > 80" | bc -l) )); then</code>
    echo "ALERT: High CPU usage: $CPU_USAGE%" | mail -s "CPU Alert" admin@example.com
+
<code>echo "ALERT: High memory usage: $MEM_USAGE%" | mail -s "Memory Alert" admin@example.com</code>
fi
+
<code>fi</code>
 
+
<code>DISK_USAGE=$(df / | grep / | awk '{print $5}' | cut -d'%' -f1)</code>
# Проверка использования памяти
+
<code>if [ $DISK_USAGE -gt 80 ]; then</code>
MEM_USAGE=$(free | grep Mem | awk '{printf "%.2f", $3/$2 * 100.0}')
+
<code>echo "ALERT: High disk usage: $DISK_USAGE%" | mail -s "Disk Alert" admin@example.com</code>
if (( $(echo "$MEM_USAGE > 80" | bc -l) )); then
+
<code>fi</code>
    echo "ALERT: High memory usage: $MEM_USAGE%" | mail -s "Memory Alert" admin@example.com
 
fi
 
 
 
# Проверка использования диска
 
DISK_USAGE=$(df / | grep / | awk '{print $5}' | cut -d'%' -f1)
 
if [ $DISK_USAGE -gt 80 ]; then
 
    echo "ALERT: High disk usage: $DISK_USAGE%" | mail -s "Disk Alert" admin@example.com
 
fi
 
</code>
 
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>
+
<code>sudo chmod +x /usr/local/bin/alert-monitor.sh</code>
sudo chmod +x /usr/local/bin/alert-monitor.sh
 
</code>
 
  
 
4. Добавьте в crontab:
 
4. Добавьте в crontab:
<code>
+
<code>*/10 * * * * /usr/local/bin/alert-monitor.sh</code>
# Проверка алертов каждые 10 минут
 
*/10 * * * * /usr/local/bin/alert-monitor.sh
 
</code>
 
  
 
== 11. Устранение неполадок ==
 
== 11. Устранение неполадок ==
Строка 478: Строка 346:
  
 
2. Используйте top для быстрого мониторинга:
 
2. Используйте top для быстрого мониторинга:
<code>
+
<code>top -bn1 | head -20</code>
top -bn1 | head -20
 
</code>
 
  
 
== 12. Дополнительные возможности ==
 
== 12. Дополнительные возможности ==
Строка 487: Строка 353:
  
 
1. Создайте пользовательскую цветовую схему:
 
1. Создайте пользовательскую цветовую схему:
<code>
+
<code>nano ~/.htoprc</code>
nano ~/.htoprc
 
</code>
 
  
 
2. Настройте цвета:
 
2. Настройте цвета:
<code>
+
<code>fields=0 48 17 18 38 39 40 2 46 47 49 1</code>
# Настройки htop
+
<code>sort_key=46</code>
fields=0 48 17 18 38 39 40 2 46 47 49 1
+
<code>sort_direction=1</code>
sort_key=46
+
<code>hide_threads=0</code>
sort_direction=1
+
<code>hide_kernel_threads=1</code>
hide_threads=0
+
<code>hide_userland_threads=0</code>
hide_kernel_threads=1
+
<code>shadow_other_users=0</code>
hide_userland_threads=0
+
<code>show_thread_names=0</code>
shadow_other_users=0
+
<code>show_program_path=1</code>
show_thread_names=0
+
<code>highlight_base_name=0</code>
show_program_path=1
+
<code>highlight_megabytes=1</code>
highlight_base_name=0
+
<code>highlight_threads=1</code>
highlight_megabytes=1
+
<code>tree_view=0</code>
highlight_threads=1
+
<code>header_margin=1</code>
tree_view=0
+
<code>detailed_cpu_time=0</code>
header_margin=1
+
<code>cpu_count_from_one=0</code>
detailed_cpu_time=0
+
<code>show_cpu_usage=1</code>
cpu_count_from_one=0
+
<code>show_cpu_frequency=0</code>
show_cpu_usage=1
+
<code>show_cpu_temperature=0</code>
show_cpu_frequency=0
+
<code>degree_fahrenheit=0</code>
show_cpu_temperature=0
+
<code>update_process_names=0</code>
degree_fahrenheit=0
+
<code>account_guest_in_cpu_meter=0</code>
update_process_names=0
+
<code>color_scheme=0</code>
account_guest_in_cpu_meter=0
+
<code>enable_mouse=1</code>
color_scheme=0
 
enable_mouse=1
 
</code>
 
  
 
=== Создание дашборда мониторинга ===
 
=== Создание дашборда мониторинга ===
  
 
1. Создайте HTML дашборд:
 
1. Создайте HTML дашборд:
<code>
+
<code>nano /usr/local/bin/create-dashboard.sh</code>
nano /usr/local/bin/create-dashboard.sh
 
</code>
 
  
 
2. Добавьте содержимое:
 
2. Добавьте содержимое:
<code>
+
<code>#!/bin/bash
#!/bin/bash
 
  
 
HTML_FILE="/var/www/html/dashboard.html"
 
HTML_FILE="/var/www/html/dashboard.html"
Строка 569: Строка 427:
 
EOF
 
EOF
  
echo "Dashboard created at $HTML_FILE"
+
echo "Dashboard created at $HTML_FILE"</code>
</code>
 
  
 
3. Сделайте скрипт исполняемым:
 
3. Сделайте скрипт исполняемым:
<code>
+
<code>sudo chmod +x /usr/local/bin/create-dashboard.sh</code>
sudo chmod +x /usr/local/bin/create-dashboard.sh
 
</code>
 
  
 
== Заключение ==
 
== Заключение ==

Версия 20:01, 14 октября 2025

Содержание

Мониторинг системных ресурсов (htop, top)

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к терминалу для мониторинга.

2. Установка инструментов мониторинга

Установка htop

1. Обновите список пакетов: sudo apt update

2. Установите htop: sudo apt install htop

Установка дополнительных инструментов

1. Установите дополнительные утилиты мониторинга: sudo apt install iotop nethogs nload iftop

2. Установите системные утилиты: sudo apt install sysstat dstat

3. Использование htop

Запуск htop

1. Запустите htop: htop

2. Запустите htop с правами root для просмотра всех процессов: sudo htop

Основные функции htop

1. Навигация:

  • Стрелки - перемещение по списку процессов
  • Page Up/Page Down - прокрутка страниц
  • Home/End - переход к началу/концу списка

2. Сортировка процессов:

  • F6 - выбор критерия сортировки
  • F5 - переключение древовидного вида
  • F4 - фильтр процессов

3. Управление процессами:

  • F9 - завершение процесса
  • F7/F8 - изменение приоритета процесса
  • F2 - настройка отображения

Настройка htop

1. Нажмите F2 для входа в настройки 2. Настройте отображение:

  • Columns - выбор колонок
  • Colors - цветовая схема
  • Meters - настройка индикаторов

3. Сохраните настройки:

  • F10 - выход с сохранением

4. Использование top

Запуск top

1. Запустите top: top

2. Запустите top с обновлением каждые 2 секунды: top -d 2

3. Запустите top для конкретного пользователя: top -u username

Основные функции top

1. Интерактивные команды:

  • k - завершить процесс
  • r - изменить приоритет
  • z - переключить цвета
  • c - показать полную команду
  • M - сортировка по памяти
  • P - сортировка по CPU
  • T - сортировка по времени

2. Навигация:

  • Space - обновить немедленно
  • q - выход
  • h - помощь

Настройка top

1. Создайте конфигурационный файл: nano ~/.toprc

2. Настройте отображение: Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=3.0, Curwin=0 Def fieldscur=AEHIOQTWKNMbcdfgjplrsuvyXZ winflags=32569, sortindx=10, maxtasks=0 graph_cpus=2, graph_mems=2 summclr=1, msgsclr=1, headclr=3, taskclr=1

5. Мониторинг CPU

Просмотр информации о CPU

1. Просмотрите информацию о процессоре: lscpu

2. Просмотрите детальную информацию: cat /proc/cpuinfo

3. Просмотрите загрузку CPU: uptime

Мониторинг в реальном времени

1. Запустите htop и нажмите F2 2. Настройте индикаторы CPU:

  • Добавьте CPU индикаторы
  • Настройте цветовую схему
  • Сохраните настройки

Анализ производительности CPU

1. Просмотрите статистику CPU: vmstat 1 5

2. Просмотрите детальную статистику: iostat -c 1 5

3. Просмотрите информацию о процессах: ps aux --sort=-%cpu | head -10

6. Мониторинг памяти

Просмотр информации о памяти

1. Просмотрите общую информацию о памяти: free -h

2. Просмотрите детальную информацию: cat /proc/meminfo

3. Просмотрите использование памяти процессами: ps aux --sort=-%mem | head -10

Мониторинг в htop

1. В htop нажмите F2 2. Настройте индикаторы памяти:

  • Добавьте Mem индикатор
  • Добавьте Swap индикатор
  • Настройте отображение

Анализ использования памяти

1. Просмотрите статистику памяти: vmstat 1 5

2. Просмотрите детальную статистику: iostat -m 1 5

3. Просмотрите использование памяти по процессам: pmap -d $(pgrep process_name)

7. Мониторинг дисков

Просмотр информации о дисках

1. Просмотрите информацию о дисках: lsblk

2. Просмотрите использование дисков: df -h

3. Просмотрите использование inode: df -i

Мониторинг I/O операций

1. Запустите iotop для мониторинга I/O: sudo iotop

2. Просмотрите статистику I/O: iostat -x 1 5

3. Просмотрите использование дисков: sudo iotop -o

Анализ производительности дисков

1. Просмотрите статистику дисков: iostat -d 1 5

2. Просмотрите детальную информацию: sudo iotop -a

3. Просмотрите использование дисков по процессам: sudo iotop -p $(pgrep process_name)

8. Мониторинг сети

Просмотр сетевых интерфейсов

1. Просмотрите сетевые интерфейсы: ip addr show

2. Просмотрите статистику сети: ip -s link show

3. Просмотрите активные соединения: ss -tulpn

Мониторинг сетевого трафика

1. Запустите nethogs для мониторинга трафика по процессам: sudo nethogs

2. Запустите iftop для мониторинга трафика: sudo iftop

3. Запустите nload для мониторинга скорости: nload

Анализ сетевой активности

1. Просмотрите статистику сети: cat /proc/net/dev

2. Просмотрите активные соединения: netstat -tulpn

3. Просмотрите трафик по интерфейсам: iftop -i eth0

9. Дополнительные инструменты мониторинга

Использование dstat

1. Запустите dstat для комплексного мониторинга: dstat

2. Настройте отображение: dstat -cdngy

3. Сохраните статистику в файл: dstat -cdngy --output /tmp/dstat.csv

Использование sar

1. Просмотрите историческую статистику: sar -u 1 5

2. Просмотрите статистику памяти: sar -r 1 5

3. Просмотрите статистику дисков: sar -d 1 5

Создание скриптов мониторинга

1. Создайте скрипт мониторинга: nano /usr/local/bin/system-monitor.sh

2. Добавьте содержимое: echo "=== System Information ===" echo "Hostname: $(hostname)" echo "Uptime: $(uptime)" echo "Date: $(date)" echo "=== CPU Usage ===" top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1 echo "=== Memory Usage ===" free -h | grep "Mem:" | awk '{print $3 "/" $2}' echo "=== Disk Usage ===" df -h | grep -E '^/dev/' echo "=== Network Connections ===" ss -tulpn | wc -l echo "=== Top Processes by CPU ===" ps aux --sort=-%cpu | head -5 echo "=== Top Processes by Memory ===" ps aux --sort=-%mem | head -5

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/system-monitor.sh

10. Настройка автоматического мониторинга

Настройка cron задач

1. Откройте crontab: sudo crontab -e

2. Добавьте задачи мониторинга: */5 * * * * /usr/local/bin/system-monitor.sh >> /var/log/system-monitor.log 0 0 * * * find /var/log -name "*.log" -mtime +7 -delete

Настройка алертов

1. Создайте скрипт алертов: nano /usr/local/bin/alert-monitor.sh

2. Добавьте содержимое: CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1) if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then echo "ALERT: High CPU usage: $CPU_USAGE%" | mail -s "CPU Alert" admin@example.com fi MEM_USAGE=$(free | grep Mem | awk '{printf "%.2f", $3/$2 * 100.0}') if (( $(echo "$MEM_USAGE > 80" | bc -l) )); then echo "ALERT: High memory usage: $MEM_USAGE%" | mail -s "Memory Alert" admin@example.com fi DISK_USAGE=$(df / | grep / | awk '{print $5}' | cut -d'%' -f1) if [ $DISK_USAGE -gt 80 ]; then echo "ALERT: High disk usage: $DISK_USAGE%" | mail -s "Disk Alert" admin@example.com fi

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/alert-monitor.sh

4. Добавьте в crontab: */10 * * * * /usr/local/bin/alert-monitor.sh

11. Устранение неполадок

Частые проблемы

1. htop не запускается:

  • Проверьте установку: which htop
  • Переустановите: sudo apt install --reinstall htop

2. Нет прав на просмотр процессов:

  • Запустите с sudo: sudo htop
  • Добавьте пользователя в группу: sudo usermod -aG adm username

3. Медленная работа htop:

  • Уменьшите частоту обновления: нажмите F2Setup** → Display options** → уменьшите Update delay**

Оптимизация производительности

1. Настройте htop для лучшей производительности:

  • Уменьшите количество отображаемых процессов
  • Отключите ненужные индикаторы
  • Увеличьте интервал обновления

2. Используйте top для быстрого мониторинга: top -bn1 | head -20

12. Дополнительные возможности

Настройка цветовых схем

1. Создайте пользовательскую цветовую схему: nano ~/.htoprc

2. Настройте цвета: fields=0 48 17 18 38 39 40 2 46 47 49 1 sort_key=46 sort_direction=1 hide_threads=0 hide_kernel_threads=1 hide_userland_threads=0 shadow_other_users=0 show_thread_names=0 show_program_path=1 highlight_base_name=0 highlight_megabytes=1 highlight_threads=1 tree_view=0 header_margin=1 detailed_cpu_time=0 cpu_count_from_one=0 show_cpu_usage=1 show_cpu_frequency=0 show_cpu_temperature=0 degree_fahrenheit=0 update_process_names=0 account_guest_in_cpu_meter=0 color_scheme=0 enable_mouse=1

Создание дашборда мониторинга

1. Создайте HTML дашборд: nano /usr/local/bin/create-dashboard.sh

2. Добавьте содержимое: #!/bin/bash

HTML_FILE="/var/www/html/dashboard.html"

cat > $HTML_FILE << 'EOF' <!DOCTYPE html> <html> <head>

   <title>System Monitor Dashboard</title>
   <meta http-equiv="refresh" content="5">
   <style>
       body { font-family: Arial, sans-serif; margin: 20px; }
       .metric { background: #f0f0f0; padding: 10px; margin: 10px 0; border-radius: 5px; }
       .high { background: #ffcccc; }
       .medium { background: #ffffcc; }
       .low { background: #ccffcc; }
   </style>

</head> <body>

System Monitor Dashboard

CPU Usage

$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)%

Memory Usage

$(free -h | grep "Mem:" | awk '{print $3 "/" $2}')

Disk Usage

$(df -h / | grep / | awk '{print $5}')

Uptime

$(uptime)

</body> </html> EOF

echo "Dashboard created at $HTML_FILE"

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/create-dashboard.sh

Заключение

Система мониторинга настроена! Теперь вы можете эффективно отслеживать производительность сервера.

Для размещения ваших проектов с настроенным мониторингом на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой мониторинга и оптимизацией производительности вашего сервера!