1. top - 进程活动监视命令
top命令显示Linux进程。它提供了一个运行系统的动态实时视图,即实际的过程活动。默认情况下,它显示服务器上运行的CPU占用率最高的任务,并且每五秒更新一次列表。
图01:Linux top命令
常用的热键使用顶级Linux监控工具
以下是有用的热键列表:
热键 | 用法 |
---|---|
Ť | 显示摘要信息。 |
米 | 显示和关闭内存信息。 |
一个 | 由各种系统资源的顶级用户对显示进行排序。用于快速识别系统中性能不佳的任务。 |
F | 进入顶部的交互式配置屏幕。有助于为特定任务设置顶部。 |
Ø | 使您能够交互式地选择顶部的排序。 |
[R | 发出renice命令。 |
ķ | 问题kill命令。 |
ž | 打开或关闭彩色/单色 |
如何找出Linux CPU利用率?
2. vmstat - 虚拟内存统计信息
vmstat命令报告有关进程,内存,分页,块IO,陷阱和cpu活动的信息。
# vmstat 3
样本输出:
procs -----------内存---------- --- swap-- ----- io -----system-- ----- cpu ------
rb swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 2540988 522188 5130400 0 0 2 32 4 2 4 1 96 0 0
1 0 0 2540988 522188 5130400 0 0 0 720 1199 665 1 0 99 0 0
0 0 0 2540956 522188 5130400 0 0 0 0 1151 1569 4 1 95 0 0
0 0 0 2540956 522188 5130500 0 0 0 6 1117 439 1 0 99 0 0
0 0 0 2540940 522188 5130512 0 0 0 536 1189 932 1 0 98 0 0
0 0 0 2538444 522188 5130588 0 0 0 0 1187 1417 4 1 96 0 0
0 0 0 2490060 522188 5130640 0 0 0 18 1253 1123 5 1 94 0 0
显示内存利用率Slabinfo
# vmstat -m
获取有关活动/非活动内存页面的信息
# vmstat -a
如何找出Linux资源利用率来检测系统瓶颈?
3. w - 查明谁登录以及他们在做什么
w命令显示有关机器上当前用户及其过程的信息。样本输出:
# w username
# w vivek
17:58:47最多5天,20:28,2个用户,平均负载:0.36,0.26,0.24
用户TTY从登录@ IDLE JCPU PCPU什么
root pts / 0 10.1.3.145 14:55 5.00s 0.04s 0.02s vim /etc/resolv.conf
root pts / 1 10.1.3.145 17:43 0.00s 0.03s 0.00sw
4.正常运行时间 - 告诉Linux系统运行了多久
uptime命令可用于查看服务器运行的时间。当前时间,系统运行了多长时间,当前登录的用户数,以及过去1,5和15分钟的系统负载平均值。
# uptime
输出:
18:02:41最多41天,23:42,1位用户,平均负载:0.00,0.00,0.00
1可被视为最佳负载值。负载可能因系统而异。对于单CPU系统1 - 3和SMP系统6-10的负载值可能是可以接受的。
5. ps - 显示Linux进程
ps命令将报告当前进程的快照。要选择所有进程,请使用-A或-e选项:
# ps -A
示例输出:
PID TTY TIME CMD
1?00:00:02初始化
2?00:00:02迁移/ 0
3?00:00:01 ksoftirqd / 0
4?00:00:00看门狗/ 0
5?00:00:00迁移/ 1
6?00:00:15 ksoftirqd / 1
....
.....
4881?00:53:28 java
4885 tty1 00:00:00 mingetty
4886 tty2 00:00:00 mingetty
4887 tty3 00:00:00 mingetty
4888 tty4 00:00:00 mingetty
4891 tty5 00:00:00 mingetty
4892 tty6 00:00:00 mingetty
4893 ttyS1 00:00:00 agetty
12853?00:00:00 cifsoplockd
12854?00:00:00 cifsdnotifyd
14231?00:10:34 lighttpd
14232?00:00:00 php-cgi
54981 pts / 0 00:00:00 vim
55465?00:00:00 php-cgi
55546?00:00:00 bind9-snmp-stat
55704点/ 1 00:00:00 ps
ps就像顶部,但提供更多的信息。
显示长格式输出
# ps -Al
要打开额外的完整模式(它将显示传递给进程的命令行参数):
# ps -AlF
显示线程(LWP和NLWP)
# ps -AlFH
在进程之后观看线程
# ps -AlLm
在服务器上打印所有进程
# ps ax
# ps axu
想要打印进程树?
# ps -ejH
# ps axjf
# pstree
获取Linux进程的安全信息
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
让我们打印以用户Vivek身份运行的每个进程
# ps -U vivek -u vivek u
以用户定义的格式配置ps命令输出
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan
尝试仅显示Lighttpd的进程ID
# ps -C lighttpd -o pid=
或
# pgrep lighttpd
或
# pgrep -u vivek php-cgi
打印PID 55977的名称
# ps -p 55977 -o comm=
十大内存消耗过程
# ps -auxf | sort -nr -k 4 | head -10
向我们展示十大CPU消耗过程
# ps -auxf | sort -nr -k 3 | head -10
在Linux中显示所有正在运行的进程
6. free - 显示Linux服务器的内存使用情况
free命令显示系统中可用和已用物理和交换内存的总量以及内核使用的缓冲区。
# free
示例输出:
缓存总共使用的空闲共享缓冲区
Mem:12302896 9739664 2563232 0 523124 5154740
- / + buffers / cache:4061800 8241096
交换:1052248 0 1052248
Linux找出虚拟内存PAGESIZE
Linux限制每个进程的CPU使用率
我的Ubuntu / Fedora Linux桌面PC有多少内存?
7. iostat - Montor Linux平均CPU负载和磁盘活动
iostat命令报告设备,分区和网络文件系统(NFS)的中央处理器(CPU)统计信息和输入/输出统计信息。
# iostat
样本输出:
Linux 2.6.18-128.1.14.el5(www03.nixcraft.in)06/26/2009
avg-cpu:%user%nice%system%iowait%steal%idle
3.50 0.09 0.51 0.03 0.00 95.86
设备:tps Blk_read / s Blk_wrtn / s Blk_read Blk_wrtn
sda 22.04 31.88 512.03 16193351 260102868
sda1 0.00 0.00 0.00 2166 180
sda2 22.04 31.87 512.03 16189010 260102688
sda3 0.00 0.00 0.00 1615 0
Linux跟踪NFS目录/磁盘I / O统计
8. sar - 监视,收集和报告Linux系统活动
sar命令用于收集,报告和保存系统活动信息。要查看网络计数器,请输入:
# sar -n DEV | more
第24天的网络计数器:
# sar -n DEV -f /var/log/sa/sa24 | more
您还可以使用sar显示实时使用情况:
# sar 4 5
样本输出:
Linux 2.6.18-128.1.14.el5(www03.nixcraft.in)06/26/2009
06:45:12 PM CPU%user%nice%system%iowait%steal%idle
06:45:16 PM全部2.00 0.00 0.22 0.00 0.00 97.78
06:45:20 PM全部2.07 0.00 0.38 0.03 0.00 97.52
06:45:24 PM全部0.94 0.00 0.28 0.00 0.00 98.78
06:45:28 PM全部1.56 0.00 0.22 0.00 0.00 98.22
06:45:32 PM全部3.53 0.00 0.25 0.03 0.00 96.19
平均:全部2.02 0.00 0.27 0.01 0.00 97.70
如何将Linux系统利用率数据收集到文件中
如何使用kSar创建sar图来识别Linux瓶颈
9. mpstat - 监视Linux上的多处理器使用情况
mpstat命令显示每个可用处理器的活动,处理器0是第一个。mpstat -P ALL显示每个处理器的平均CPU利用率:
# mpstat -P ALL
示例输出:
Linux 2.6.18-128.1.14.el5(www03.nixcraft.in)06/26/2009
06:48:11 PM CPU%user%nice%sys%iowait%irq%soft%steal%idle intr / s
06:48:11 PM全部3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.04
06:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.31
06:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.93
06:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.00
06:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.80
06:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.91
06:48:11 PM 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.98
06:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.75
06:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89
Linux将单独显示每个多个SMP CPU处理器利用率。
10. pmap - Montor在Linux上处理内存使用情况
pmap命令报告进程的内存映射。使用此命令查找内存瓶颈的原因。
# pmap -d PID
要显示pid#47394的过程内存信息,请输入:
# pmap -d 47394
Sample Outputs:
47394:/ usr / bin / php-cgi
地址千字节模式偏移设备映射
0000000000400000 2584 rx-- 0000000000000000 008:00002 php-cgi
0000000000886000 140 rw --- 0000000000286000 008:00002 php-cgi
00000000008a9000 52 rw --- 00000000008a9000 000:00000 [anon]
0000000000aa8000 76 rw --- 00000000002a8000 008:00002 php-cgi
000000000f678000 1980 rw --- 000000000f678000 000:00000 [anon]
000000314a600000 112 rx-- 0000000000000000 008:00002 ld-2.5.so
000000314a81b000 4 r ---- 000000000001b000 008:00002 ld-2.5.so
000000314a81c000 4 rw --- 000000000001c000 008:00002 ld-2.5.so
000000314aa00000 1328 rx-- 0000000000000000 008:00002 libc-2.5.so
000000314ab4c000 2048 ----- 000000000014c000 008:00002 libc-2.5.so
.....
......
..
00002af8d48fd000 4 rw --- 0000000000006000 008:00002 xsl.so
00002af8d490c000 40 rx-- 0000000000000000 008:00002 libnss_files-2.5.so
00002af8d4916000 2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b15000 4 r ---- 0000000000009000 008:00002 libnss_files-2.5.so
00002af8d4b16000 4 rw --- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009零(删除)
00007fffc95fe000 84 rw --- 00007ffffffea000 000:00000 [stack]
ffffffffff600000 8192 ----- 0000000000000000 000:00000 [anon]
映射:933712K可写/私有:4304K共享:768000K
最后一行非常重要:
映射:933712K映射到文件的内存总量
可写/私有:4304K私有地址空间量
共享:768000K该进程与其他人共享的地址空间量
Linux使用pmap命令找到程序/进程使用的内存
11. netstat - Linux网络和统计监控工具
netstat命令显示网络连接,路由表,接口统计信息,伪装连接和多播成员身份。
# netstat -tulpn
# netstat -nat
12. ss - 网络统计
ss命令用于转储套接字统计信息。它允许显示类似于netstat的信息。请注意,netstat大多已经过时。因此你需要使用ss命令。对Linux上的所有TCP和UDP套接字进行ss:
# ss -t -a
或者
# ss -u -a
显示所有具有进程SELinux安全上下文的TCP套接字:
# ss -t -a -Z
请参阅关于ss和netstat命令的以下资源:
ss:显示Linux TCP / UDP网络和套接字信息
使用netstat命令获取有关特定IP地址连接的详细信息
13. iptraf - 获取Linux上的实时网络统计数据
iptraf命令是交互式多彩IP LAN监视器。它是一种基于ncurses的IP LAN监视器,可生成各种网络统计信息,包括TCP信息,UDP计数,ICMP和OSPF信息,以太网负载信息,节点统计信息,IP校验和错误等。它可以以易于阅读的格式提供以下信息:
通过TCP连接进行网络流量统计
通过网络接口的IP流量统计
按协议进行网络流量统计
通过TCP / UDP端口和数据包大小进行网络流量统计
网络流量统计由Layer2地址
图02:常规接口统计:通过网络接口进行的IP流量统计
图03通过TCP连接的网络流量统计
在Centos / RHEL / Fedora Linux上安装IPTraf以获取网络统计信息
14. tcpdump - 详细的网络流量分析
tcpdump命令是简单的转储网络通信的命令。但是,您需要充分了解TCP / IP协议才能使用此工具。为了显示有关DNS的流量信息,输入:
# tcpdump -i eth1 'udp port 53'
查看所有来自端口80的HTTP HTTP数据包,即仅打印包含数据的数据包,而不是例如SYN和FIN数据包和仅限ACK数据包,请输入:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
全部显示FTP会话至202.54.1.5,请输入:将
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
所有HTTP会话打印至192.168.1.5:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
使用wireshark查看有关文件的详细信息,请输入:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
15. iotop - Linux I / O监视器
iotop命令监视器,I / O使用信息,使用Linux内核。它显示了一个按服务器上的进程或线程排序的当前I / O使用情况表。
$ sudo iotop
示例输出:Linux iotop:检查什么是强调并增加硬盘上的负载
16. htop - 交互式进程查看器
htop是一款免费且开源的基于ncurses的Linux进程查看器。它比顶级命令好得多。非常容易使用。您可以选择进程进行查杀或重新命名,而无需使用其PID或离开htop界面。
$ htop
示例输出:
CentOS / RHEL:安装htop交互式文本模式进程查看器
17. atop - 高级Linux系统和进程监视器
atop是一个非常强大的交互式监视器,可以查看Linux系统上的负载。它从性能的角度显示最关键的硬件资源。您可以快速查看CPU,内存,磁盘和网络性能。它显示哪些进程负责处理级别上CPU和内存负载的指示负载。
$ atop
CentOS / RHEL:安装在(高级系统和进程监视器)实用工具上
18. ac和lastcomm -
您必须监视Linux服务器上的进程和登录活动。psacct或acct软件包包含多个用于监视过程活动的实用程序,其中包括:
ac命令:显示用户连接时间的统计信息
lastcomm命令:显示有关以前执行的命令的信息
accton命令:打开或关闭进程记帐
sa命令:汇总会计信息
如何对你的Linux系统做些什么的详细审计跟踪
19.监督 - 过程监督
Monit是一个免费的开源软件,可以充当过程监督。它具有重新启动失败的服务的能力。您可以使用Systemd,daemontools或任何其他此类工具来达到同样的目的。本教程演示如何在Debian或Ubuntu Linux上安装和配置monit作为进程监督。
20. nethogs-找出在Linux上使用大多数带宽的PID
NetHogs是一个小而方便的网络顶级工具。它按照Firefox,wget等进程名称对带宽进行分组。如果网络流量突然爆发,请启动NetHogs。您将看到哪个PID导致带宽激增。Linux:使用Nethogs工具查看每个进程的带宽使用情况
$ sudo nethogs
21. iftop - 显示主机在一个接口上的带宽使用情况
iftop命令监听给定接口名称(如eth0)上的网络通信。它显示了成对主机的当前带宽使用情况表。
$ sudo iftop
22. vnstat - 基于控制台的网络流量监视器
vnstat很容易使用Linux的基于控制台的网络流量监视器。它为选定的接口保留每小时,每日和每月网络流量的日志。
$ vnstat
保持ADSL或专用远程Linux服务器的日常网络流量日志
CentOS / RHEL:安装vnStat网络流量监视器以保持每日流量的日志
CentOS / RHEL:使用PHP Web界面前端查看Vnstat图
23. nmon - Linux系统管理员,调试器,基准测试工具
nmon是Linux系统管理员用于调整目的的终极工具。它可以显示来自cli的CPU,内存,网络,磁盘,文件系统,NFS,最高进程资源和分区信息。安装并使用nmon工具来监视Linux系统性能
$ nmon
24.浏览 - 关注Linux系统
glances是一款开源的跨平台监控工具。它在小屏幕上提供大量信息。它也可以在客户端/服务器模式下工作。Linux:通过一瞥监视器关注您的系统
$ glances
25. strace - 在Linux上监视系统调用
想跟踪Linux系统调用和信号?尝试strace命令。这对调试网络服务器和其他服务器问题很有用。了解如何使用追踪流程并查看它在做什么。
26. / proc / file system - 各种Linux内核统计信息
/ proc文件系统提供有关各种硬件设备和其他Linux内核信息的详细信息。有关更多详细信息,请参阅Linux内核/ proc文档。Common / proc例子:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
27. Nagios - Linux服务器/网络监控
Nagios是一款流行的开源计算机系统和网络监控应用软件。您可以轻松监控所有主机,网络设备和服务。当事情出错时它可以发出警报,当它们变得更好时它可以发出警报。FAN是 “全自动Nagios”。FAN的目标是提供Nagios安装,包括由Nagios社区提供的大多数工具。FAN以标准ISO格式提供CDRom图像,使安装Nagios服务器变得容易。除此之外,为了改善Nagios周围的用户体验,大量的工具都包含在发行版中。
28. Cacti - 基于Web的Linux监控工具
Cacti是一个完整的网络图形解决方案,旨在利用RRDTool数据存储和图形功能的强大功能。Cacti提供了一个快速轮询器,高级图形模板,多种数据采集方法和用户管理功能。所有这些都包含在一个直观易用的界面中,这对于LAN大小的安装以及数百个设备的复杂网络来说是非常有意义的。它可以提供有关网络,CPU,内存,登录用户,Apache,DNS服务器等等的数据。了解如何在CentOS / RHEL下安装和配置Cacti网络制图工具。
29. KDE System Guard - 实时Linux系统报告和制图
KSysguard是KDE桌面的支持网络的任务和系统监视器应用程序。这个工具可以通过ssh会话运行。它提供了许多功能,如客户机/服务器体系结构,可以监视本地和远程主机。图形前端使用所谓的传感器来检索显示的信息。传感器可以返回简单的值或更复杂的信息,如表格。对于每种类型的信息,提供一个或多个显示。显示器被组织在可以彼此独立保存和加载的工作表中。所以,KSysguard不仅是一个简单的任务管理器,而且是控制大型服务器场的强大工具。
图05 KDE System Guard {图片来源:维基百科}
有关详细用法,请参阅KSysguard手册。
30. GNOME Linux系统监视器
系统监视器应用程序使您能够显示基本系统信息并监视系统过程,系统资源使用情况和文件系统。您还可以使用系统监视器来修改系统的行为。虽然不如KDE System Guard强大,但它提供了可能对新用户有用的基本信息:
显示有关计算机硬件和软件的各种基本信息。
Linux内核版本
GNOME版本
硬件
安装内存
处理器和速度
系统状况
当前可用的磁盘空间
流程
内存和交换空间
网络使用
文件系统
列出所有已安装的文件系统以及每个系统的基本信息。
图06 Gnome System Monitor应用程序
奖金:其他工具
还有几个工具:
nmap - 扫描您的服务器的开放端口。
lsof - 列出打开的文件,网络连接等等。
ntop基于web的工具 - ntop是以类似于top命令对于进程的方式查看网络使用情况的最佳工具,即它是网络流量监视软件。您可以查看网络状态,UDP,TCP,DNS,HTTP和其他协议的流量协议分配。
Conky - X Window系统的另一个很好的监控工具。它是高度可配置的,并且能够监视许多系统变量包括CPU的状态,存储器,交换空间,磁盘存储,温度,处理,网络接口,电池电量,系统消息,电子邮件收件箱等
GKrellM - 它可以用来监视CPU,主内存,硬盘,网络接口,本地和远程邮箱以及其他许多事物的状态。
mtr -mtr将traceroute和ping程序的功能结合在一个网络诊断工具中。
vtop - Linux上的图形终端活动监视器
gtop - 用于Linux / macOS Unix终端的令人敬畏的系统监控仪表板