1. top—Linux系统进程监控
top命令是性能监控程序,它可以在很多Linux/Unix版本下使用,并且它也是Linux系统管理员经常使用的监控系统性能的工具。Top命令可以定期显示所有正在运行和实际运行并且更新到列表中,它显示出CPU的使用、内存的使用、交换内存、缓存大小、缓冲区大小、过程控制、用户和更多命令。它也会显示内存和CPU使用率过高的正在运行的进程。当我们对 Linux系统需要去监控和采取正确的行动时,top命令对于系统管理员是非常有用的。让我们看下top命令的实际操作。
# top
2. vmstat— 虚拟内存统计
vmstat命令是用于显示虚拟内存、内核线程、磁盘、系统进程、I/O模块、中断、CPU活跃状态等更多信息。在默认的情况下,Linux系统是没有vmstat这个命令的,如果你要使用它,必须安装一个包名叫sysstat的程序包。命令格式常用用法如下:
# vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----r b swpd free inact active si so bi bo in cs us sy id wa st1 00 810420 97380 70628 0 0 1154 89 79 1 6 90 3 0
3. lsof— 打开文件列表
lsof命令对于很多 Linux/Unix系统都可以使用,主要以列表的形式显示打开的文件和进程。
打开的文件主要包括磁盘文件、网络套接字、管道、设备和进程。使用这个命令的主要原因是一个一个盘不能卸载并且显示文件正在使用或者打开的错误信息。这个命令很容易看出哪些文件正在使用。这个命令最常用的格式:
# lsofCOMMANDPIDUSER FDTYPEDEVICESIZE NODE NAMEinit1root cwd DIR104,240962 /init1root rtd DIR104,240962 /init1root txt REG104,2 38652 17710339 /sbin/initinit1root mem REG104,2 129900196453 /lib/ld-2.5.soinit1root mem REG104,2 1693812196454 /lib/libc-2.5.soinit1root mem REG104,2 20668196479 /lib/libdl-2.5.soinit1root mem REG104,2 245376196419 /lib/libsepol.so.1init1root mem REG104,2 93508196431 /lib/libselinux.so.1init1root 10uFIFO 0,17 953 /dev/initctl
4. tcpdump— 网络数据包分析器
tcpdump是一种使用最广泛的命令行网络数据包分析器或数据包嗅探程序,主要用于捕获和过滤TCP/IP包收到或者转移在一个网络的特定借口信息。它也提供了一个选项参数去保存将捕获的包在一个文件中用于以后分析使用,tcpdump几乎在所有的 Linux版本中都是可用的。
# tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes22:08:59.617628 IP .ssh > 115.113.134.3.static-.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 964822:09:07.653466 IP .ssh > 115.113.134.3.static-.in.28472: P 116:232(116) ack 1 win 964822:08:59.617916 IP 115.113.134.3.static-.in.28472 > .ssh: . ack 116 win 64347
5. netstat— 网络统计
netstat命令是一个监控网络数据包传入和传出的统计界面的命令行工具。它对于许多系统管理员去监控网络性能和解决网络相关问题是一个非常有用的工具。
# tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes22:08:59.617628 IP .ssh > 115.113.134.3.static-.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 964822:09:07.653466 IP .ssh > 115.113.134.3.static-.in.28472: P 116:232(116) ack 1 win 964822:08:59.617916 IP 115.113.134.3.static-.in.28472 > .ssh: . ack 116 win 64347
6. htop— 进程监控
htop是一个更加先进的交互式的实时监控工具。htop与top命令非常相似,但是他有一些非常丰富的功能,如用户友好界面管理进程、快捷键、横向和纵向进程等更多的。htop是一个第三方工具并不包括在 Linux系统中,你需要使用包管理工具进行安装。
# htop
7. iotop— 监控 Linux磁盘I/O
iotop也是和top和htop命令相似,但是它会有一个报告功能去监控和显示实时的磁盘I/O输入和输出和程序进程。这个工具对于查找精确的高的磁盘读/写过程是非常有用的。
# iotop
8. iostat— 输入/输出统计
iostat是收集和展示系统输入和输出存储设备统计的简单工具。这个工具通常用于查找存储设备性能问题,包括设备、本地磁盘、例如NFS远程磁盘。
# iostatLinux 2.6.18-238.9.1.el5 () 09/13/avg-cpu: %user %nice %system %iowait %steal %idle2.60 3.65 1.04 4.29 0.00 88.42Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtncciss/c0d0 17.79 545.80 256.52 855159769 401914750cciss/c0d0p10.00 0.00 0.00 5459 3518cciss/c0d0p216.45 533.97 245.18 836631746 384153384cciss/c0d0p30.63 5.58 3.97 8737650 6215544cciss/c0d0p40.00 0.00 0.0080cciss/c0d0p50.63 3.79 5.03 5936778 7882528cciss/c0d0p60.08 2.46 2.34 3847771 3659776
9. IPTraf —实时IP局域网监控
IPTraf 是一个基于开源的 Linux系统实时网络(IP网络)监测的工具。它能收集到各种各样的信息,如通过网络对IP流量监测,包括TCP标志信息、ICMP详细细节、TCP/UDP流量故障、TCP连接的数据包和拜恩计数。并且它还收集TCP,UDP,ICMP,IP,非IP,IP校验错误,界面活性等一般信息和详细信息的接口统计数据。
10. Psacct或者Acct— 监视用户活动
Psacct或者Acct是用于监测每个用户对系统的活跃状态的一个非常有用的工具。在后台有两个守护进程在运行,一个是密切关注系统上每个用户的整体活动,另一个进程关注有哪些资源被它们消耗。
这个工具对于系统管理员是非常有用的去跟踪每个用户的活动,可以知道用户正在做什么,发出了什么样的命令,占用了多少资源,多长时间活跃在系统上。
11. Monit— 程序和服务监测
这是一个免费的开源的基于web程序的自动监控和管理系统进程、程序、文件、目录、权限、校验文件系统。它监控的服务包括Apache、MYSQL、Mail、FTP、Nginx等等。系统状态是可以从命令行或者自己的网络接口来查看。
12. NetHogs— 监视每个进程的网络带宽
NetHogs是一个开源的漂亮的小程序(类似于 Linux上面的top命令),在您的系统上保持每个进程的网络活动状态。它也保持了一个程序或者应用实时的网络流量带宽使用情况。
13. iftop— 网络带宽监控
iftop是另一个基于终端的开源的系统监测工具,主要功能是通过你自己系统上的网络接口显示一个经常更新的网络带宽利用率的列表(即源主机和目的主机)。iftop监控的是网络的使用情况,而top监控的是CPU的使用情况。iftop监视一个选定的接口并且显示两台主机之间当前宽带的使用情况。
14. Monitorix— 系统和网络监控
Monitorix是一个尽可能多的在 Linux/Unix上一个轻量级监控工具,主要设计是监控正在运行的系统和网络资源。它有一个内置的HTTP web服务去定期收集系统和网络信息并显示成图片。它可以监视系统的平均负载使用、内存的分配、磁盘驱动器、系统服务、网络端口、邮件统计(Sendmail、Postfix、Dovecot等等)、MYSQL数据库等等更多的服务。它的主要目的是监控整个系统的性能,并且有助于监测故障、瓶颈、异常活动等状况。
15. Arpwatch— 以太网活动监控器
Arpwatch是一种用来监视 Linux网络的以太网的网络流量的地址解析(网络地址转换)的一个程序。它一直随着网络时间戳的变化监视以太网流量和产生日志的IP和MAC地址对。当一个IP地址或MAC地址对发生变化的时候,它会发送电子邮件通知管理员。
并且它在检测ARP攻击是非常有用的。
16. Suricata— 网络安全监控
Suricata是一个高性能的开源的网络安全与入侵检测与预防Linux、FreeBSD、Windows等操作系统的监控工具。它是一个非营利基金OISF(Open Information Security Foundation)拥有的。
17. VnStat PHP— 监测网络带宽
VnStat PHP是一个web前端应用最流行的社交工具叫“vnstat”。VnStat PHP使用了很好的图形模式监控网络流量的使用情况。它显示了每时、每天、每月的总结报告中的网络流量使用情况。
18. Nagios — 网络/服务器监控
Nagios是一个领先的开源的强大的监控系统,网络/系统管理员在他们影响主要业务流程之前识别和解决服务器相关的问题。Nagios可以监控远程 Linux、Windows、开关、单窗口的路由器和打印机。它能显示你的网络和服务器关键的告警,有利于在错误反生之前帮助你解决问题。
19. Nmon —监控Linux系统性能
Nmon(即奈吉尔性能监视器)工具用来监视Linux系统的所有资源包括:CPU、内存、磁盘使用率、网络上的进程、NFS、内核等等。这个工具有两个模式:即在线模式和捕捉模式。在线模式适用于实时监控,捕捉模式用于存储输出为CSV格式后的处理。
20. Collectl— 一体化性能检测工具
Collectl是另一个功能强大的基于命令行的监控工具,它可用于收集有关系统资源的信息,包括CPU使用率、内存、网络、节点、进程、NFS、TCP套接等等。
如果觉得《20个命令行工具监控 Linux 系统性能(转载)》对你有帮助,请点赞、收藏,并留下你的观点哦!