在 Ubuntu 14.04 服务器中,我遇到了大规模的硬盘活动,但没有明显的理由:它突然出现,持续几分钟,然后消失。它会消耗系统资源并减慢整个系统的速度。
是否有一个(命令行)工具可用于监视磁盘活动,列出流程正在使用磁盘和文件涉及?类似 CPU 的 htop 之类的东西。
答案1
答案2
你可以试试尼蒙
sudo apt-get install nmon
尝试:
nmon
输出如下:
按 d = 磁盘 按 c = CPU 按 r = RAM 按 q 退出
您还可以尝试:
iostat
输出如下:
Linux 3.16.0-30-generic (client01) 03/01/2016 _i686_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
39.73 24.58 2.96 0.26 0.00 32.48
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.32 57.31 40.05 119879872 83767716
sdb 1.45 15.02 22.60 31424408 47273012
答案3
类似 CPU 的 htop 之类的东西。
atop
- AT 计算的系统和进程监视器
# apt-get install -y atop
# atop
它具有与 类似的界面htop
。
现在按shift+ d- 查看磁盘活动
然后按c- 获取完整命令名称。
PID DSK COMMAND-LINE
28497 37% /usr/sbin/apache2 -k start
28496 36% /usr/sbin/apache2 -k start
30528 11% mplayer
..........
.....
- shift+ c- 中央处理器
- shift+ m- 内存
- shift+ d- 磁盘
- shift+ n- 网络(但是,可能需要内核补丁)
答案4
collectl
工具还可以发挥仅为特定目的而设计的实用程序的作用,例如top
、和许多其他用途。ps
iotop
安装:
sudo apt-get install collectl
例如,collectl -sc
可以使用以下命令来监视 cpu 使用情况的摘要。
以下命令collectl -sd
将帮助您监控磁盘使用情况。
您还可以用于collectl -sD
收集单个磁盘上的数据,但您必须知道,不会报告总磁盘上的信息。
让collectl作为top实用程序工作非常容易,只需在终端中运行以下命令collectl --top
,您就会看到top工具在Linux系统中执行时提供的类似输出。
要将 Collectl 实用程序用作 ps 工具,请在终端中运行以下命令:
collectl -c1 -sZ -i:1
您将获得有关系统中进程的信息,就像ps
在终端中运行命令一样。
您可以将t
for tcp 和c
for结合起来中央处理器例子collectl -stc
该工具支持的子系统的摘要列表:
b – buddy info (memory fragmentation)
c – CPU
d – Disk
f – NFS V3 Data
i – Inode and File System
j – Interrupts
l – Lustre
m – Memory
n – Networks
s – Sockets
t – TCP
x – Interconnect
y – Slabs (system object caches)
collectl
通过石墨或 graphiti 可视化: