在进程后显示线程 # ps -AlLm
显示系统上所有的进程 # ps ax # ps aux 显示进程树 # ps -ejH # ps axjf # pstree
显示进程的安全信息
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM
显示指定用户(如 vivek)运行的进程 # ps -U vivek -u vivek u 设置用户自定义的输出格式
# 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)的 PID # ps -C lighttpd -o pid= 或
# pgrep lighttpd 或
# pgrep -u vivek php-cgi
显示指定 PID(如 55977)的进程名称 # ps -p 55977 -o comm=
找出占用内存资源最多的前 10 个进程 # ps -auxf | sort -nr -k 4 | head -10 找出占用 CPU 资源最多的前 10 个进程 # ps -auxf | sort -nr -k 3 | head -10
6. free – 内存使用情况
free 命令显示了系统的可用和已用的物理内存及交换内存的总量,以及内核用到的缓存空间。 # free 输出示例:
total used free shared buffers cached
Mem:12302896973966425632325231245154740
7. iostat – CPU 平均负载和磁盘活动
iostat 命令用于汇报 CPU 的使用情况,以及设备、分区和网络文件系统(NFS)的 IO 统计信息。 # iostat 输出示例:
8. sar – 监控、收集和汇报系统活动
sar 命令用于收集、汇报和保存系统活动信息。要查看网络统计,请输入: # sar -n DEV | more 显示 24 日的网络统计:
# sar -n DEV -f /var/log/sa/sa24 | more 您还可以使用 sar 显示实时使用情况: # sar 4 5 输出示例:
9. mpstat – 监控多处理器的使用情况
mpstat 命令显示每个可用处理器的使用情况,编号从 0 开始。命令 mpstat -P ALL 显示了每个处理器的平均使用率:
# mpstat -P ALL 输出示例:
10. pmap – 监控进程的内存使用情况
pmap 命令用以显示进程的内存映射,使用此命令可以查找内存瓶颈。 # pmap -d PID
显示 PID 为 47394 的进程的内存信息,请输入: # pmap -d 47394 输出示例: 最后一行非常重要:
mapped: 933712K 映射到文件的内存量 writeable/private: 4304K 私有地址空间
shared: 768000K 此进程与其他进程共享的地址空间
11. netstat – Linux 网络统计监控工具
netstat 命令显示网络连接、路由表、接口统计、伪装连接和多播连接等信息。 # netstat -tulpn # netstat -nat
12. ss – 网络统计
ss 命令用于获取套接字统计信息。它可以显示类似于 netstat 的信息。不过 netstat 几乎要过时了,ss 命令更具优势。要显示所有 TCP 或 UDP 套接字: # ss -t -a 或 # ss -u -a
显示所有带有 SELinux 安全上下文Security Context的 TCP 套接字: # ss -t -a -Z
13. iptraf – 获取实时网络统计信息
iptraf 命令是一个基于 ncurses 的交互式 IP 网络监控工具。它可以生成多种网络统计信息,包括 TCP 信息、UDP 计数、ICMP 和 OSPF 信息、以太网负载信息、节点统计信息、IP 校验错误等。它以简单的格式提供了以下信息: 基于 TCP 连接的网络流量统计 基于网络接口的 IP 流量统计 基于协议的网络流量统计
基于 TCP/UDP 端口和数据包大小的网络流量统计 基于二层地址的网络流量统计
图 02:常规接口统计:基于网络接口的 IP 流量统计
图 03:基于 TCP 连接的网络流量统计
14. tcpdump – 详细的网络流量分析
tcpdump 命令是简单的分析网络通信的命令。您需要充分了解 TCP/IP 协议才便于使用此工具。例如,要显示有关 DNS 的流量信息,请输入: # tcpdump -i eth1 'udp port 53'
查看所有去往和来自端口 80 的 IPv4 HTTP 数据包,仅打印真正包含数据的包,而不是像 SYN、FIN 和仅含 ACK 这类的数据包,请输入:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)>2)) != 0)' 显示所有目标地址为 202.54.1.5 的 FTP 会话,请输入: # tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20' 打印所有目标地址为 192.168.1.5 的 HTTP 会话:
# 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 – I/O 监控