Сколько памяти занимает процесс. На примере mysqld.
ps -o vsz,rss,cmd --pid $(pgrep mysqld)
Список процессов с сортировкой по занимаемой памяти.
ps aux --sort -rss ps aux --sort -vsz
Посмотреть информацию о процессоре.
lscpu
Список процессов с сортировкой по нагрузке на CPU.
ps aux --sort -pcpu
ps aux --sort=-pcpu,+pmem | head -n 11
Информация о загрузке каждого ядра процессора.
mpstat -P ALL
Загрузка процессора в %.
top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1) "%"; }' <(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat)
Текстовый вывод нагрузки на процессор в консоль.
sar 1 60
Наблюдаем через top за конкретным процессом.
top -c -p $(pgrep -d',' -f mysqld)
Определить, кто родитель процесса.
Например, если указать pid worker процесса nginx, команда ниже покажет pid процесса master. В случае с nginx это не имеет большого смысла, но иногда нужно.
ps -o ppid= -p 5606
Откуда запущен процесс:
#ls -l /proc/Process-PID/cwd
Сводная информация по нагрузке на диск.
iostat -xk -t 2
Выводит информация в консоль каждые 2 секунды. С помощью этого вывода можно бегло оценить, что в целом происходит с каждым конкретным диском.
Дисковая активность всех процессов.
pidstat -d 1
Выводит каждую секунду в консоль информацию о дисковой активности всех процессов. Дисковая активность конкретного процесса.
pidstat -p PID -d 1
Что пишет процесс.
strace -e trace=write -p PID
Анализ I/O дисков, в том числе latency.
./iosnoop ./iosnoop -p PID
Список удаленных открытых файлов.
Полезная команда, которая позволяет решить популярную проблему, когда казалось бы места свободного должно быть много, но его реально нет. Принудительно удален какой-то открытый файл, поэтому место не освободилось.
lsof +L1 lsof | grep '(deleted)'
Список открытых файлов в конкретной директории.
lsof +D /var/log
Популярные метрики dstat
dstat -tldnpms 10
Только диски по read_bytes / write_bytes (нагрузка на «железо»):
dstat --top-bio
Диски по rchar/wchar (нагрузка на «по», т.е. включая обращения ко всяким виртуальным ФС):
dstat --top-io
Утилита nethogs дает интерфейс на подобии top.
dnf install nethogs apt install nethogs
# lsof -i -P -n | grep LISTEN # netstat -tulpn | grep LISTEN # nmap -sTU -O IP-address-Here
tcpdump -i <interface> port 53 | grep "src net 192.168.0.0/16\|10.0.0.0/8\|172.16.0.0/12"
timedatectl set-timezone Asia/Novokuznetsk
Вернет IP-адрес NAT
curl ifconfig.me
Отобразит цепочку IP-адресов
curl ifconfig.me/forwarded
Вывести список всех служб:
#systemctl list-unit-files --type=service
Вывести список только включенных служб:
#systemctl list-unit-files --type=service --state=enabled --all
Определяем путь до исполняемого файла желаемого редактора:
which vim
Получаем примерно следующий вывод:
# which vim /usr/bin/vim
Изменяем редактор:
export EDITOR=/usr/bin/vim
Чтобы узнать сопоставление дисков с их номерами на ESXi необходимо выполнить следующее:
# cat /sys/class/scsi_host/*/proc_name
Примерный вывод:
[root@portal18 k.guskov]# cat /sys/class/scsi_host/*/proc_name vmw_pvscsi ahci ahci ahci ahci ahci ahci ahci ahci ahci ahci ata_piix ahci ahci ahci ahci ahci ahci ahci ahci ahci ahci ata_piix ahci ahci ahci iscsi_tcp ahci ahci ahci ahci ahci ahci ahci
Необходимо найти vmw_pvscsi и запомнить его индекс. В данном примере строчка 1, так что индекс будет 0 Затем выполняем:
ll /sys/class/scsi_host/host0/device/target*/*/block/
Примерный вывод:
# ll /sys/class/scsi_host/host0/device/target*/*/block/ /sys/class/scsi_host/host0/device/target0:0:0/0:0:0:0/block/: итого 0 drwxr-xr-x 10 root root 0 июн 7 16:59 sda /sys/class/scsi_host/host0/device/target0:0:1/0:0:1:0/block/: итого 0 drwxr-xr-x 8 root root 0 июн 7 16:59 sdb /sys/class/scsi_host/host0/device/target0:0:2/0:0:2:0/block/: итого 0 drwxr-xr-x 10 root root 0 июн 7 16:59 sdc /sys/class/scsi_host/host0/device/target0:0:3/0:0:3:0/block/: итого 0 drwxr-xr-x 8 root root 0 июн 7 16:59 sdd /sys/class/scsi_host/host0/device/target0:0:4/0:0:4:0/block/: итого 0 drwxr-xr-x 8 root root 0 июн 7 16:59 sde /sys/class/scsi_host/host0/device/target0:0:5/0:0:5:0/block/: итого 0 drwxr-xr-x 8 root root 0 июн 7 16:59 sdf /sys/class/scsi_host/host0/device/target0:0:6/0:0:6:0/block/: итого 0 drwxr-xr-x 8 root root 0 авг 1 13:56 sdh{{ :main:virtualization:vmware:scsi-disk:1.png?600 |}}
Необходимо найти интересующий вас диск и обратить внимание на секцию target последние 2 цифры - ID диска в ESXi.
systemctl list-units --type service
Пример вывода:
UNIT LOAD ACTIVE SUB DESCRIPTION blk-availability.service loaded active exited Availability of block devices chrony.service loaded active running chrony, an NTP client/server clamav-daemon.service loaded active running Clam AntiVirus userspace daemon clamav-freshclam.service loaded active running ClamAV virus database updater console-setup.service loaded active exited Set console font and keymap cron.service loaded active running Regular background program processing daemon dbus.service loaded active running D-Bus System Message Bus fetchmail.service loaded active exited LSB: init-Script for system wide fetchmail daemon getty@tty1.service loaded active running Getty on tty1 ifupdown2-pre.service loaded active exited Helper to synchronize boot up for ifupdown keyboard-setup.service loaded active exited Set the console keyboard layout kmod-static-nodes.service loaded active exited Create List of Static Device Nodes lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling networking.service loaded active exited Network initialization pmg-smtp-filter.service loaded active running Proxmox SMTP Filter Daemon pmgbanner.service loaded active exited Proxmox Mail Gateway Login Banner pmgdaemon.service loaded active running Proxmox Mail Gateway's privileged loopback API daemon pmgnetcommit.service loaded active exited Commit Proxmox network changes pmgpolicy.service loaded active running Proxmox Mail Gateway Policy Daemon pmgproxy.service loaded active running Proxmox Mail Gateway's unprivileged API and API-proxy daemon pmgsync.service loaded active exited Sync Proxmox Configuration postfix.service loaded active exited Postfix Mail Transport Agent postfix@-.service loaded active running Postfix Mail Transport Agent (instance -)
systemctl list-units --type service --state running
Пример вывода:
# systemctl list-units --type service --state running UNIT LOAD ACTIVE SUB DESCRIPTION chrony.service loaded active running chrony, an NTP client/server clamav-daemon.service loaded active running Clam AntiVirus userspace daemon clamav-freshclam.service loaded active running ClamAV virus database updater cron.service loaded active running Regular background program processing daemon dbus.service loaded active running D-Bus System Message Bus getty@tty1.service loaded active running Getty on tty1 pmg-smtp-filter.service loaded active running Proxmox SMTP Filter Daemon pmgdaemon.service loaded active running Proxmox Mail Gateway's privileged loopback API daemon pmgpolicy.service loaded active running Proxmox Mail Gateway Policy Daemon pmgproxy.service loaded active running Proxmox Mail Gateway's unprivileged API and API-proxy daemon postfix@-.service loaded active running Postfix Mail Transport Agent (instance -) postgresql@15-main.service loaded active running PostgreSQL Cluster 15-main rpcbind.service loaded active running RPC bind portmap service rrdcached.service loaded active running LSB: start or stop rrdcached rsyslog.service loaded active running System Logging Service ssh.service loaded active running OpenBSD Secure Shell server systemd-journald.service loaded active running Journal Service systemd-logind.service loaded active running User Login Management systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files user@0.service loaded active running User Manager for UID 0 zfs-zed.service loaded active running ZFS Event Daemon (zed) LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 21 loaded units listed.
systemctl list-units --type service --state failed
systemctl list-unit-files
Пример вывода:
ystemctl list-unit-files UNIT FILE STATE PRESET proc-sys-fs-binfmt_misc.automount static - -.mount generated - dev-hugepages.mount static - dev-mqueue.mount static - proc-fs-nfsd.mount static - proc-sys-fs-binfmt_misc.mount disabled disabled run-rpc_pipefs.mount generated - sys-fs-fuse-connections.mount static - sys-kernel-config.mount static - sys-kernel-debug.mount static - sys-kernel-tracing.mount static - var-lib-nfs-rpc_pipefs.mount static - postfix-resolvconf.path disabled enabled systemd-ask-password-console.path static - systemd-ask-password-wall.path static - session-1.scope transient - session-3.scope transient - apt-daily-upgrade.service static - apt-daily.service static - auth-rpcgss-module.service static - autovt@.service alias - blk-availability.service enabled enabled chrony-dnssrv@.service static - chrony-wait.service disabled enabled chrony.service enabled enabled chronyd.service alias - clamav-clamonacc.service disabled enabled clamav-daemon.service enabled enabled clamav-freshclam.service enabled enabled console-getty.service disabled disabled console-setup.service enabled enabled container-getty@.service static - cron.service enabled enabled cryptdisks-early.service masked enabled cryptdisks.service masked enabled dbus-org.freedesktop.hostname1.service alias - dbus-org.freedesktop.locale1.service alias - dbus-org.freedesktop.login1.service alias - dbus-org.freedesktop.timedate1.service alias - dbus.service static - debug-shell.service disabled disabled
systemctl list-unit-files --type service
Пример вывода:
UNIT FILE STATE PRESET proc-sys-fs-binfmt_misc.automount static - -.mount generated - dev-hugepages.mount static - dev-mqueue.mount static - proc-fs-nfsd.mount static - proc-sys-fs-binfmt_misc.mount disabled disabled run-rpc_pipefs.mount generated - sys-fs-fuse-connections.mount static - sys-kernel-config.mount static - sys-kernel-debug.mount static - sys-kernel-tracing.mount static - var-lib-nfs-rpc_pipefs.mount static - postfix-resolvconf.path disabled enabled systemd-ask-password-console.path static - systemd-ask-password-wall.path static - session-1.scope transient - session-3.scope transient - apt-daily-upgrade.service static - apt-daily.service static - auth-rpcgss-module.service static - autovt@.service alias - blk-availability.service enabled enabled chrony-dnssrv@.service static - chrony-wait.service disabled enabled chrony.service enabled enabled chronyd.service alias - clamav-clamonacc.service disabled enabled clamav-daemon.service enabled enabled clamav-freshclam.service enabled enabled console-getty.service disabled disabled console-setup.service enabled enabled container-getty@.service static - cron.service enabled enabled cryptdisks-early.service masked enabled cryptdisks.service masked enabled dbus-org.freedesktop.hostname1.service alias - dbus-org.freedesktop.locale1.service alias - dbus-org.freedesktop.login1.service alias - dbus-org.freedesktop.timedate1.service alias - dbus.service static - debug-shell.service disabled disabled dm-event.service static - dpkg-db-backup.service static - e2scrub@.service static - e2scrub_all.service static - e2scrub_fail@.service static - e2scrub_reap.service enabled enabled
systemctl list-unit-files 'networking*'
Пример вывода:
# systemctl list-unit-files 'networking*'
UNIT FILE STATE PRESET
networking.service enabled enabled