当前位置: 首页 > 编程日记 > 正文

7 款可替代 top 命令的工具!(二)

24c0426f236a6641e2502a1ad83a4491.gif

作者 | JackTian

来源 | 杰哥的IT之旅

上一篇文章中给大家介绍了《11 款可替代 top 命令的工具!》,今天我再来给大家推荐 7 款可替代 top 命令的工具,看完这两篇替代品的文章相信能让你对 Linux 操作系统下一个小小的命令大开眼界。

一、atop

atop[1]是基于 C 语言编写的一款适用于 Linux 操作系统的 ASCII 全屏性能监视器,它可以将所有的进程(即使进程在间隔期间已完成的),系统和进程活动的每日日志记录以进行长期分析,通过突出显示过载的系统资源使用颜色等。

同时,它还会定期显示与 CPU、内存、交换、磁盘(包括 LVM)和网络层相关的系统级活动,并且对于每个进程和线程,例如:CPU 利用率、内存增长、磁盘利用率、优先级、用户名、状态和退出代码。

除此之外,atop 还可结合内核模块 netatop,可显示每个进程和线程的网络活动。

安装 atop:

# apt install atop

下载 netatop 源码包并解压,需要以 root 身份进行执行以下步骤安装 netatop 内核模块和 netatopd 守护程序。

# curl -LO https://www.atoptool.nl/download/netatop-3.1.tar.gz
# tar -zxf netatop-3.1.tar.gz
# apt install zlib1g-dev
# cd netatop-3.1
# make
# make install

加载模块并启动守护进程:

# systemctl start netatop

加载模块并在启动后自动启动守护进程:

# systemctl enable netatop

72e99cadb6219b732b6a516ed149ae77.png

二、ctop

ctop[2]是基于 Go 语言编写的一款为提供对多个容器的实时指标的展示,使用 ctop 可以快速查看容器 CPU、Memory、Network、IO 等指标的实时情况。

# sudo wget https://github.com/bcicen/ctop/releases/download/0.7.6/ctop-0.7.6-linux-amd64 -O /usr/local/bin/ctop
# sudo chmod +x /usr/local/bin/ctop

安装完毕后,若执行ctop命令提示弹窗dial unix /var/run/docker.sock报错的话,原因是没有这个 docker 文件,则需要使用官方安装脚本自动安装,可执行:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun来进行安装 docker,安装完 docker 后,可以在 /var/run/ 目录下检查下 docker.sock 文件是否已经存在,则可以执行 ctop。

2.1 ctop 参数选项

  • -a:只显示活动的容器

  • -f:设置初始过滤字符串

  • -h:显示帮助对话框

  • -i:反转默认颜色

  • -r:反向容器排序顺序

  • -s:选择容器排序字段

  • -v:输出版本信息并退出

0548d267d837e4de4e21e4745a6acd1b.gif

三、iftop

iftop[3]是对网络使用的作用与 top 对 CPU 使用的作用相同,它可以侦听命名接口上的网络流量,并按主机对显示当前带宽使用情况表。

# apt install iftop

3.1 iftop 参数选项

  • -h:显示帮助信息

  • -n:不做主机名查询

  • -N:不将端口号转换为服务

  • -p:在复杂模式下运行(显示同一网段的其他主机之间的流量)

  • -b:不显示条形图

  • -B:以字节为单位显示带宽

  • -i interface:指定监听接口

  • -f filter code:使用过滤码选择要计数的数据包(默认不计算,但只计算 IP 报文)

  • -F net/mask:显示输入 / 输出 IPv4 网络流量

  • -G net6/mask6:显示输入 / 输出 IPv6 网络流量

  • -l:display 和 count link-local IPv6 流量(默认为:off)

  • -P:显示端口和主机

  • -m limit:设置带宽上限

  • -c config file:指定一个替代的配置文件

  • -t:使用不带 ncurses 的文本接口

6cbed15e493cf90b57cb85f4c8852a30.png

四、iotop

iotop[4]是可以识别在您的机器上使用大量输入 / 输出请求的进程,类似于 top 的实用程序,但不是向您显示最消耗 CPU 的内容信息,而是按进程的 IO 使用情况列出相关进程。

受到 Guillaume Chazarain 的 iotop Python 脚本的启发,由 Vyacheslav Trushkin 用 C 重写并由 Boian Bonev 改进,完全无需 Python 即可运行。

iotop 可以在 Debian、Ubuntu、Fedora、CentOS 7/8、RHEL 7/8、其他 Linux 发行版的操作系统上运行。

# apt install iotop

4.1 iotop 参数选项

  • --version:显示程序的版本号并退出

  • -h, --help:显示帮助信息并退出

  • -o, --only:仅显示实际执行 I/O 操作的进程或线程

  • -b, --batch:非交互式模式

  • -n NUM, --iter=NUM:结束前的迭代次数 [无限]

  • -d SEC, --delay=SEC:迭代间隔时间 [1秒]

  • -p PID, --pid=PID:监视的进程 / 线程 [全部]

  • -u USER, --user=USER:监控的用户 [全部]

  • -P, --processes:只显示进程,而不是所有线程

  • -a, --accumulated:显示累计 I/O,而不是带宽

  • -k, --kilobytes:使用千字节为单位

  • -t, --time:在每行上添加一个时间戳

  • -q, --quiet:禁止一些标题行

  • --no-help:禁止列出快捷方式

4.2 iotop 热键

  • any:任何其他键强制刷新

  • q:退出

  • i:改变 I/O 优先级

  • o:仅显示活跃的进程

  • r:反转排序顺序

  • 方向左右键:改变排序列

61abaf4c167fd85540389071b83dc61f.png

五、nmon

nmon[5]是用于 AIX 和 Linux 操作系统的计算机性能系统监控工具,以交互的方式精简格式在终端上每两秒更新一次的频率显示本地系统统计信息(CPU、内存、网络、磁盘、文件系统、NFS、进程、资源等),以记录方式将统计数据保存到逗号分隔的 (CSV) 数据文件中,以供绘图和分析帮助理解计算机资源使用、调整选项以及相关瓶颈。

如果您在运行 nmon 时指定-F-f-X-x-Z参数选项中的任何一个,则 nmon 将处于记录模式,若不添加任何参数选项 nmon 将处于交互模式。

b0ca1babe3957bb5b4ce9b83ec14b186.png

# apt install nmon

0596a438c6db72c2ba0a7d5fb3d68ae3.png

更多帮助信息可执行nmon -h查看 nmon 的帮助手册。

六、slabtop

slabtop[6]是以实时的方式显示内核“slab”缓冲区的细节信息。

用法:

slabtop [选项]

选项:

  • -d n--delay=n:每 n 秒更新一次显示的信息,默认是每 3 秒

  • -o --once:显示一次后退出

  • -s S --sort=S:指定排序标准(如下)进行排序

  • -h--help:显示帮助信息

  • -V--version:显示程序版本

排序标准:

  • a:按活动对象的数量排序

  • b:按每个 slab 的对象排序

  • c:按缓存大小排序

  • l:按 slabs 排序

  • v:按活跃 slabs 数量排序

  • n:按名称排序

  • o:按对象数量排序

  • p:按每个 slab 的页数排序

  • s:按对象大小排序

  • u:按缓存利用率排序

显示内核 slab 缓存区信息:

Active / Total Objects (% used)    : 567933 / 601056 (94.5%)Active / Total Slabs (% used)      : 22815 / 22815 (100.0%)Active / Total Caches (% used)     : 106 / 175 (60.6%)Active / Total Size (% used)       : 160092.21K / 167455.54K (95.6%)Minimum / Average / Maximum Object : 0.01K / 0.28K / 8.00KOBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME                   74382  70996  95%    0.19K   3542       21     14168K dentry70005  60472  86%    0.10K   1795       39      7180K buffer_head55648  55324  99%    0.50K   3478       16     27824K kmalloc-51253376  53376 100%    0.12K   1668       32      6672K kernfs_node_cache40192  39937  99%    0.03K    314      128      1256K kmalloc-3236231  35951  99%    0.59K   2787       13     22296K inode_cache34880  34617  99%    0.20K   1744       20      6976K vm_area_struct21951  21711  98%    1.15K    813       27     26016K ext4_inode_cache18368  15434  84%    0.06K    287       64      1148K anon_vma_chain16170  13296  82%    0.57K   1155       14      9240K radix_tree_node15360  15360 100%    0.02K     60      256       240K kmalloc-1614848  14848 100%    0.01K     29      512       116K kmalloc-810944  10944 100%    0.06K    171       64       684K kmalloc-6410540   8896  84%    0.02K     62      170       248K lsm_file_cache10396   8866  85%    0.09K    226       46       904K anon_vma9984   6569  65%    0.06K    156       64       624K vmap_area9520   9520 100%    0.05K    112       85       448K ftrace_event_field9184   7952  86%    0.25K    574       16      2296K filp8580   8455  98%    0.66K    715       12      5720K proc_inode_cache7956   7755  97%    0.04K     78      102       312K ext4_extent_status7014   6173  88%    0.19K    334       21      1336K kmalloc-1926720   6720 100%    0.07K    120       56       480K Acpi-Operand5696   5436  95%    0.12K    178       32       712K kmalloc-1284324   4324 100%    0.09K     94       46       376K trace_event_file

七、virt-top

virt-top[7]是一个类似于 top 的实用程序,主要用于在 Linux 操作系统中显示虚拟化域的统计信息以及 CPU、内存、虚拟磁盘、虚拟网络、虚拟机管理程序等,它需要使用 libvirt 才能够显示不同虚拟化系统的统计信息。

virt-top 支持在 CentOS、RHEL、Debian、Ubuntu、Fedora、OpenSUSE 等操作系统上进行安装。

CentOS、RHEL 上安装 Virt-top:

# yum install virt-top

Debian、Ubuntu 上安装 Virt-top:

# apt install virt-top

Fedora 上安装 Virt-top:

# dnf install virt-top

OpenSUSE 上安装 Virt-top:

# zypper install virt-top

92103ee293c94763fc5983f725f578e7.png

更多 virt-top 参数选项的运用可参考 virt-top man 手册。

References

[1] atop:https://www.atoptool.nl/index.php
[2] ctop:https://github.com/bcicen/ctop
[3] iftop:http://www.ex-parrot.com/~pdw/iftop/
[4] iotop:https://github.com/Tomas-M/iotop
[5] nmon:http://nmon.sourceforge.net/pmwiki.php
nmon:https://en.wikipedia.org/wiki/Nmon
nmon:https://www.ibm.com/docs/en/aix/7.1?topic=n-nmon-command
[6] slabtop:https://wangchujiang.com/linux-command/c/slabtop.html
[7] virt-top:https://linux.die.net/man/1/virt-top
virt-top:https://www.mankier.com/1/virt-top
virt-top:https://ostechnix.com/display-virtualization-systems-stats-with-virt-top-in-linux/
libvirt:https://libvirt.org/

3620d56826d56ff37b5c71547f223138.gif

127074f524eaa457f9a152a5f9ad0766.png

分享

推荐6个好用到爆的Pycharm插件

资讯

再一次输给AI,弯道急速超车

技术

用Python绘制谷爱凌卡通动漫形象

技术

这才是程序员元宵节的正确打开方式

3e159d1c3ceba8b173ed46c9dba101e1.png

分享

ddd1bc94bdcdcd6e6df8f57ca4175199.png

点收藏

2550c30ce6e0b34582309d29eaccb8a3.png

点点赞

11c1afe917d73d0bd8e5b2088e20900e.png

点在看

相关文章:

Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

异常Log: Error:Execution failed for task ‘:app:dexDebug’. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/Library/……/java” finished with non-zero exit value 2 错误原因&am…

# 学号 2017-2018-20172309 《程序设计与数据结构》第十一周学习总结

---恢复内容开始--- 学号 2017-2018-20172309 《程序设计与数据结构》第十一周学习总结 教材学习内容总结 第23章 初识Android操作系统:一个多用户的Linux系统,一个运用程序运行时与其他的运用运行是独立的。发展:在Android4.4之前所有的应用…

php扩展xdebug基本使用

官网&#xff1a;http://www.xdebug.org/ 使用&#xff1a;http://www.xdebug.org/docs/安装 http://blog.csdn.net/21aspnet/article/details/7036087使用1.获取文件名&#xff0c;行号&#xff0c;函数名 xdebug_call_class() <?php function fix_string($a) { …

基于 Opencv 实现眼睛控制鼠标

作者 | 小白来源 | 小白学视觉如何用眼睛来控制鼠标&#xff1f;一种基于单一前向视角的机器学习眼睛姿态估计方法。在此项目中&#xff0c;每次单击鼠标时&#xff0c;我们都会编写代码来裁剪你们的眼睛图像。使用这些数据&#xff0c;我们可以反向训练模型&#xff0c;从你们…

linux 安装安装rz/sz 和 ssh

安装rz&#xff0c;sz yum install lrzsz; 安装ssh yum install openssh-server 查看已安装包 rpm -qa | grep ssh 更新yum源 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentO…

css左固定右自适应常用方法

下面是几种方法的公用部分&#xff08;右自适应也是一样的&#xff0c;换一下方向&#xff09; html: <div class"demo"> <div class"sidebar">我是固定的</div> <div class"content">我是自适应的</div> </di…

nginx或httpd实现负载均衡tomcat(三)

接博客nginx或httpd实现反向代理tomcat并实现会话保持&#xff08;二&#xff09;实例四&#xff1a;使用httpd负载均衡后端tomcat服务第一步&#xff1a;准备两个tomcat服务器节172.16.240.203修改tomcat的server.xml配置文件&#xff0c;添加一个host。<Host name"to…

为 PHP 应用提速、提速、再提速

原文地址&#xff1a; http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/ http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps2/index.html为 PHP 应用提速、提速、再提速&#xff01;PHP 是一种脚本语言&#xff0c;常用于创建 Web 应用程序…

冬奥会夺金的背后杀手锏,竟是位 AI 虚拟教练

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;一则消息登上了热搜&#xff1a; 2月14日晚&#xff0c;在北京冬奥会自由式滑雪女子空中技巧决赛中&#xff0c;徐梦桃为中国代表团再添一金。她选择了难度系数4.293的动作&#xff0c…

Socket-实例

import socket,os,time server socket.socket() server.bind(("localhost",9999)) server.listen()while True:conn,addrserver.accept()print("new conn",addr)while True:print("等待新指令")data conn.recv(1024)if not data:print("客…

kcachegrind安装

http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindDownload http://hi.baidu.com/wangxinhui419/blog/item/4a7409c78c22b4c8d100608a.html http://wxiner.blog.sohu.com/156841393.html说明&#xff1a;linux下如果安装不上&#xff0c;直接下载windows版的吧…

Java【小考】

课上&#xff0c; 老师出了一个题: 考察&#xff1a;1、类的定义 2、类的属性 3、类的方法、重载、构造方法、代码块 题目是这样的&#xff1a; 设计 一个 类&#xff1a;Tree 要求&#xff1a; 1、包含main方法 2、属性&#xff1a;静态&#xff1a; String name ; double hei…

首个深度强化学习AI,能控制核聚变,成功登上《Nature》

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 最近&#xff0c;DeepMind 开发出了世界上第一个深度强化学习 AI &#xff0c;可以在模拟环境和真正的核聚变装置中实现对等离子体的自主控制。 这项研究成果登上了《Nature》杂志。 托卡马克是一种用于…

windows下安装mysql8.0压缩版

下面总结下安装过程&#xff1a; 首先解压下载好的压缩版本。将解压后mysql的bin文件目录配置系统环境path变量中使用cmd打开命令窗口&#xff0c;输入mysqld --initialize命令初始化mysql的data数据目录&#xff0c;记住初始化完毕后&#xff0c;会在解压目录下生成一个data文…

Linux实时监控工具Nmon使用

官网&#xff1a;http://nmon.sourceforge.net/pmwiki.php?nMain.HomePage 下载&#xff1a;http://sourceforge.net/projects/nmon/files/nmon_linux_14g.tar.gz 解压&#xff1a; #chmod ux nmon_x86_64_sles11 #chmod 777 nmon_x86_64_sles11 版本不同&#xff0c;对应文件…

英特尔2022年投资者大会:公布技术路线图及重要节点

在英特尔2022年投资者大会上&#xff0c;英特尔CEO帕特基辛格和各业务部门负责人概述了公司发展战略及长期增长规划的主要内容。在半导体需求旺盛的时代&#xff0c;英特尔的多项长期规划将充分把握转型增长的机遇。在演讲中&#xff0c;英特尔公布了其主要业务部门的产品路线图…

20151102adonet2

实现增删改查 ExecuteNonQuery:执行增删改语句,返回值为该命令所影响的行数. ExecuteReader:执行查询,并返回 一个DataReader对象. ExecuteScalar:执行查询,返回查询数.(删除修改时判断记录是否存在) string strSql string.Format("select count(*) from RNews where New…

day07 -文件的基本操作

1、什么是文件&#xff1f; 文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位文件的操作核心就&#xff1a;读、写即我们只需要对于进行读写操作&#xff0c;就是对操作系统发起请求&#xff0c;然后由操作系统将用户或者应用程序对文件的读写操作转换成具体的硬盘…

淘宝Tengine服务器开源

http://tengine.taobao.org/index_cn.htmlTengine是由 淘宝核心系统部基于Nginx开发的Web服务器&#xff0c;它在 Nginx的基础上&#xff0c;针对大访问量网站的需求&#xff0c;添加了很多功能和特性。Tengine的性能和稳定性已经在大型的网站如 淘宝网&#xff0c; 淘宝商城等…

22个案例详解Pandas数据分析/预处理时的实用技巧,超简单

作者 | 俊欣来源 | 关于数据分析与可视化今天小编打算来讲一讲数据分析方面的内容&#xff0c;整理和总结一下Pandas在数据预处理和数据分析方面的硬核干货&#xff0c;我们大致会说Pandas计算交叉列表Pandas将字符串与数值转化成时间类型Pandas将字符串转化成数值类型Pandas当…

PL/SQL 中Returning Into的用法

ORACLE的DML语句中可以指定RETURNING INTO语句。RETURNING INTO语句的使用在很多情况下可以简化PL/SQL编程&#xff0c;少一次select into语句。DELETE操作&#xff1a;RETURNING返回的是DELETE之前的结果&#xff1b; INSERT操作&#xff1a;RETURNING返回的是INSERT之后的结果…

Java常用多线程辅助工具---countdownLatch

为什么80%的码农都做不了架构师&#xff1f;>>> 前言 上一篇博文说到semaphore&#xff0c;一个加强版的synchronized&#xff0c;该多线程辅助工具适用于控制对资源操作或者访问的场景。现在有一张场景是&#xff0c;需要等各个线程都都执行完了再进行下一步的操作…

听说,英特尔要对外开放 x86 授权?

整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;同为主流芯片架构&#xff0c;相较于可申请授权的 ARM 和开源的 RISC-V&#xff0c;x86 一直以来都保持着“高高在上”的立场——唯有英特尔和 AMD 拥有 x86 授权。但目前看来&#xff0c;x86 的“高冷…

Linux下gedit显示行号

Gedit 编辑->视图

关于String数组的用法

android ContextWrapper.getResources(ContextWrapper.java:89) getResources()报错原因是在OnCreate方法外 无法完成Context的初始化 正确做法&#xff1a; String[] names;names new String[6];names[0] getResources().getString(R.string.a);names[1] getResources().g…

使用RabbitMQ做数据接收和处理时,自动关闭

场景&#xff1a;N个客户端向MQ里发送数据&#xff1b;服务器上有另一个控制台程序(假设叫ServerClient)来处理这里数据&#xff08;往数据库保存&#xff09;。方向为Client * n→MQSERVER→ServerClient 问题&#xff1a;ServerClient自动关闭&#xff0c;没有错误日志&#…

在 Python 中妙用短路机制

作者 | 费弗里来源 | Python大数据分析本期我们即将学习的是&#xff1a;Python中短路机制的妙用。不同于物理学中的「短路」&#xff08;Short circuit&#xff09;那般危险&#xff0c;Python中的短路机制非常有用&#xff0c;跟很多其他编程语言中的短路机制作用类似&#x…

《Advanced PHP Programming》读书笔记

此书无中文版&#xff0c;但是写的极好&#xff01;本来想翻译的&#xff0c;可是时间不允许了。 http://www.amazon.com/Advanced-PHP-Programming-George-Schlossnagle/dp/0672325616/refpd_rhf_dp_p_t_1约定&#xff1a;加粗字体表示章节&#xff0c;由于时间关系解释性的说…

cookie记录用户的浏览商品的路径

在电子商务的网站中&#xff0c;经常要记录用户的浏览路径&#xff0c;以判断用户到底对哪些商品感兴趣&#xff0c;或者哪些商品之间存在关联。 下面将使用cookie记录用户的浏览过的历史页面。该网站将每个页面的标题保存在该页面的$TITLE 变量中&#xff0c;用户每访问一次&a…

如何快速写一个违背双亲委托机制的classloader

很多情况下&#xff0c;不得以必须写个classloader来满足需求。例如你一个工程里你想用相同的数据库的多个版本&#xff0c;自己制定了一个jar包目录&#xff0c;没有classloader管理等等。如果是一个遵循java已经规定好的机制的classloader&#xff08;双亲委托以及加载依赖类…