20个监视linux性能(资源利用率)的工具

1. top - Linux进程监视

top命令是一个性能监视程序,被系统管理员频繁使用,并且在大多数类Linux/Unix系统下都可以用。top命令可以展示所有活跃的进程列表,并定时更新。它可以显示CPU利用率、内存利用率、交换内存、缓存大小、缓冲区大小、进程PID、用户、命令等等,还能显示出高CPU、内存利用率的进程。

$ top

top命令截图
更多示例可以参考:12 TOP Command Examples in Linux

2. VmStat - 虚拟内存统计

VmStat命令用于显示虚拟内存、内核线程、硬盘、系统进程、I/O块、中断、CPU活动等项目的统计信息。默认情况下Linux系统不提供vmstat命令,需要安装一个包叫做sysstat,这个包提供了vmstat程序。

[root@h96 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 25210804 136128 6474948    0    0     1   150    0    1  8  2 90  0  0

更多示例可以参考:6 Vmstat Command Examples in Linux

3. lsof - 列出打开的文件

lsof命令在许多类Linux/Unix系统下可以使用,用于列出打开的文件和相应进程。打开的文件包括磁盘文件、网络Socket、管道、设备进程。用这个命令的一个主要原因是,当磁盘不能正确卸载(unmount)的时候,可以查看导致unmount失败的已经打开的文件。用这个命令可以轻易地识别出哪些文件正在使用。最常用的形式如下:

$ lsof
COMMAND     PID   TID           USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
systemd       1                 root  cwd       DIR              253,0       4096         64 /
systemd       1                 root  rtd       DIR              253,0       4096         64 /
systemd       1                 root  txt       REG              253,0    1628608     741342 /usr/lib/systemd/systemd
systemd       1                 root  mem       REG              253,0      20064 3221250427 /usr/lib64/libuuid.so.1.3.0
systemd       1                 root  mem       REG              253,0     265576 3221792703 /usr/lib64/libblkid.so.1.1.0
systemd       1                 root  mem       REG              253,0      90248 3221250371 /usr/lib64/libz.so.1.2.7
systemd       1                 root  mem       REG              253,0     157424 3221250378 /usr/lib64/liblzma.so.5.2.2
systemd       1                 root  mem       REG              253,0      23968 3221250473 /usr/lib64/libcap-ng.so.0.0.0
systemd       1                 root  mem       REG              253,0      19896 3221250389 /usr/lib64/libattr.so.1.1.0
...

更多示例可以参考:10 lsof Command Examples in Linux

4. tcpdump - 网络包分析器

Tcpdump是最常用的命令行形式的网络包分析和嗅探程序之一,可以捕获或者过滤特定网络上收到的TCP/IP包。它也提供了把网络包保存到文件的选项,用于进一步分析。tcpdump几乎在所有主流的Linux发行版上都可用。

$ tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

更多示例可以参考:12 Tcpdump Command Examples in Linux

5. netstat - 网络统计

Netstat是一个命令行工具可以监视入站和出站的网络包以及网络接口的统计信息。这是非常有用的工具,可以监视网络性能并解决网络相关的问题。

$ netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:mysql                     *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:realm-rusd                *:*                         LISTEN
tcp        0      0 *:ftp                       *:*                         LISTEN
tcp        0      0 localhost.localdomain:ipp   *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42709 TIME_WAIT
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42710 TIME_WAIT
tcp        0      0 *:http                      *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:https                     *:*                         LISTEN

更多例子可以参考:20 Netstat Command Examples in Linux

6. htop - Linux进程监视

Htop是一个更高级的交互式实时Linux进程监视工具,与top命令非常相似,但是htop的功能更丰富,比如更好用的交互界面、快捷键、进程的垂直和水平视图等等。Htop是一个第三方工具,不包含在Linux系统中,需要用yum包管理工具进行安装。

$ htop

htop截图
Htop的安装可以参考:Install Htop (Linux Process Monitoring) in Linux

用htop的时候可能会发现一些进程显示了 N N N遍( N < = N<= N<=CPU核心数),视觉体验很差,可以参考这一篇帖子,按F2,选择 Display options,选择 Hide userland threads。

7. iotop - 监视Linux的磁盘I/O

iotop与top和htop命令非常像,但是它的功能是实时监视磁盘IO进程,这个工具可以用来寻找高磁盘占用的进程。

$ iotop

iotop截图

8. iostat - 输入输出统计

iostat是一个统计存储设备的输入和输出的工具,经常用来跟踪存储设备的性能问题,包括设备、本地磁盘、远程磁盘(例如NFS)。

$ iostat
Linux 3.10.0-1127.el7.x86_64 (h96)      2020年12月01日  _x86_64_        (12 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.68    0.00    2.08    0.16    0.00   90.08

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.61         0.27         6.99     671109   17066352
sdb               4.13        10.30      1793.70   25166691 4382127817
dm-0              4.09        10.30      1793.70   25157287 4382127817
dm-1              0.00         0.00         0.00       2072          0
dm-2              0.00         0.00         0.00       1036          0

更多例子可以参考:6 Iostat Command Examples in Linux

9. IPTraf - 实时IP LAN监视

IPTraf是一个开源的基于控制台的实时网络(IP LAN)监视工具。它可以收集各种信息,比如监视通过网络传递的IP流量,包括TCP标志位信息、ICMP详细信息、TCP/UDP流量故障、TCP连接数据包和字节计数,也可以收集校验错误、接口活动等常规或详细信息。

$ yum install iptraf -y
$ iptraf-ng

iptraf截图
更多例子可以参考:IPTraf Network Monitoring Tool

10. psacct或acct - 监视用户活动

psacct或acct工具是监护系统上每个用户活动的工具。两种工具都有守护进程在后台运行,密切监视系统上每个用户的总体活动和消耗的资源。这些工具用于系统管理员跟踪每个用户的活动(他们在做什么、发出了什么命令、使用了多少资源、处于活跃状态的时间)。

$ yum install psacct -y
$ systemctl start psacct
# 显示用户连接时间
$ ac
        total     4020.69
# 显示每日用户统计
$ ac -d
Sep  4  total       11.36
Sep  5  total        0.35
Sep  9  total        0.17
Sep 11  total       17.39
Sep 14  total       76.08
Sep 15  total       18.52
Sep 16  total        0.40
Sep 17  total        9.99
Sep 18  total       18.88
Sep 19  total       41.03
Sep 21  total       13.42
…

更多安装步骤和例子可以参考:psacct - CSDN博客

11. Monit - Linux进程和服务监视

Monit是一个开源的基于Web的进程监视工具,可以自动监视和管理系统进程、程序、文件、目录、权限、检验和和文件系统。它可以监视Apache、MySQL、Mail、FTP、ProFTP、Nginx、SSH等服务。可以从命令行或者Web界面查看系统状态。

$ yum install monit -y
$ monit
 New Monit id: 9c46b454e626d229666f7aa3e4dbb7f0
 Stored in '/root/.monit.id'
Starting Monit 5.26.0 daemon with http interface at [localhost]:2812

monit的Web界面
添加更多监控的服务可以参考:Linux Process Monitoring with Monit

12. NetHogs - 监视每个进程的网络带宽

NetHogs是一个开源的小程序,类似于Linux top命令,每个网络活动显示一行,也可以跟踪每个程序使用的实时网络流速度。

$ yum install nethogs -y
$ nethogs

nethogs截图
更多示例参考:Monitor Linux Network Bandwidth Using NetHogs

13. iftop - 网络带宽监视

14. Monitorix - 系统和网络监视

下载地址:https://www.monitorix.org/downloads.html

$ yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL wget perl perl-XML-Lib -y
$ wget https://www.monitorix.org/monitorix-3.12.0-1.noarch.rpm
$ systemctl start monitorix

打开浏览器 http://localhost:8080/monitorix/
monitorix截图
安装和配置可以参考:Monitorix a System and Network Monitoring Tool for Linux

15. Arpwatch - 以太网活动监视

16. Suricata - 网络安全监视

17. VnStat - 监视网络带宽

18. Nagios – 网络/服务器监控

19. nmon - 监视linux性能

$ yum install epel-release
$ yum install nmon -y
$ nmon

nmon截图

20. collectl - 多合一性能监控工具

从13开始大部分工具是重复的,所以不翻译了,请直接查看原文

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中查看Linux服务器的性能,您可以使用一些库和工具来收集和分析服务器的性能数据。以下是一些示例代码和库,可以帮助您开始监视服务器性能: 1. psutil库:可以使用psutil库来获取有关系统资源的信息,如CPU利用率、内存使用情况、磁盘使用情况等。 ```python import psutil # 获取CPU利用率 cpu_percent = psutil.cpu_percent(interval=1) # 获取内存使用情况 memory_usage = psutil.virtual_memory() memory_percent = memory_usage.percent # 获取磁盘使用情况 disk_usage = psutil.disk_usage('/') disk_percent = disk_usage.percent ``` 2. uptime命令:如果您希望获取服务器的运行时间和负载信息,可以使用`subprocess`模块来执行`uptime`命令。 ```python import subprocess # 执行uptime命令并获取输出 result = subprocess.run(['uptime'], capture_output=True, text=True) output = result.stdout.strip() # 输出结果 print(output) ``` 3. sar命令:sar是一个系统活动报告工具,可以用于收集和分析服务器的性能数据。您可以使用`subprocess`模块来执行sar命令并获取输出。 ```python import subprocess # 执行sar命令并获取输出 result = subprocess.run(['sar'], capture_output=True, text=True) output = result.stdout.strip() # 输出结果 print(output) ``` 这些是一些示例代码和工具,可以帮助您开始在Python中监视Linux服务器的性能。您还可以探索其他库和工具,以根据您的需求获取更多详细的性能数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值