top
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。
在 linux中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 — 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。
在命令行中输入 “top” 即可启动 top ,运行后如下图所示:
运行中的 top
[root@weicot ~]# top top - 19:57:06 up 33 min, 4 users, load average: 0.45, 0.17, 0.10 Tasks: 126 total, 2 running, 124 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.4 us, 0.6 sy, 0.0 ni, 98.2 id, 0.8 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2998304 total, 2501480 free, 282888 used, 213936 buff/cache KiB Swap: 1069052 total, 1069052 free, 0 used. 2555512 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 44208 6720 3884 S 0.0 0.2 0:02.14 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u2:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.74 rcu_sched 11 root 20 0 0 0 0 R 0.0 0.0 0:00.36 rcuos/0 12 root rt 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/0 13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
如输出所示,top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。
第一部分 — 最上部的系统信息栏
第一行(top):
“19:57:06”为系统当前时刻;
“33 min”为系统启动后到现在的运作时间;
“4 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 — 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
“load Average ”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“126 total”为当前系统进程总数;
“2 running”为当前运行中的进程数;
“124 sleeping”为当前处于等待状态中的进程数;
“0 stoped”为被停止的系统进程数;
“0 zombie”为被复原的进程数;
第三行(Cpus):
分别表示了 CPU 当前的使用率;
第四行(Mem):
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
第二部分 — 中间部分的内部命令提示栏
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
s - 改变画面更新频率 l - 关闭或开启第一部分第一行 top 信息的表示 t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示 m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示 N - 以 PID 的大小的顺序排列表示进程列表 P - 以 CPU 占用率大小的顺序排列进程列表 M - 以内存占用率大小的顺序排列进程列表 h - 显示帮助 n - 设置在进程列表所显示进程的数量 q - 退出 top s - 改变画面更新周期 1 第三部分 -- 最下部分的进程列表栏 以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式。 一般的,我们通过远程监控的方式对服务器进行维护,让服务器本地的终端实时的运行 top ,是在服务器本地监视服务器状态的快捷便利之一。 1 top -d 1 -c
使用top,可以修改porcess的优先级。
#top -d 1 "r"-->输入进程PID-->输入nice值
iotop
如果没有的话centos 可以通过这个安装
yun install iotop
安装 顾名思义这个就是 用来查看 io 的
通过
rpm -qa |grep iotop
确认是否已经安装好,
可以通过
iotop tab
补全查看有这个命令
运行示例
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 22 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.01 % [kworker/0:1] 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 21 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u2:0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcuob/0] 10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 11 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcuos/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 13 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 15 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [perf] 17 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 18 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd] 19 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd] 21 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md] 26 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd]
参数
--version #显示版本号 -h, --help #显示帮助信息 -o, --only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o -b, --batch #运行在非交互式的模式 -n NUM, --iter=NUM #在非交互式模式下,设置显示的次数, -d SEC, --delay=SEC #设置显示的间隔秒数,支持非整数值 -p PID, --pid=PID #只显示指定PID的信息 -u USER, --user=USER #显示指定的用户的进程的信息 -P, --processes #只显示进程,一般为显示所有的线程 -a, --accumulated #显示从iotop启动后每个线程完成了的IO总数 -k, --kilobytes #以千字节显示 -t, --time #在每一行前添加一个当前的时间 -q, --quiet #suppress some lines of header (implies --batch). This option can be specified up to three times to remove header lines. -q column names are only printed on the first iteration, -qq column names are never printed, -qqq the I/O summary is never printed.
可用的命令(在运行iotop命令后按相应键位):
使用left和right改变排序(方向键改变排序列),还可使用以下命令:
r:反向排序, o:切换至选项--only, p:切换至--processes选项, a:切换至--accumulated选项 q:退出 i:改变线程的优先级
例子:
[root@weicot home]# iotop -o Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 22 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.01 % [kworker/0:1]