Linux 性能监控
1 检测程序
ps 命令
ps 命令可以显示系统当前的进程信息。默认情况下,ps 命令只会显示运行在当前控制台下的属于当前用户的进程。
zzz@ubuntu:~$ ps
PID TTY TIME CMD
1698 pts/0 00:00:00 bash
1716 pts/0 00:00:00 ps
zzz@ubuntu:~$
常用参数:
-e: 显示所有进程
-f: 显示完整格式的输出
zzz@ubuntu:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 17:27 ? 00:00:02 /sbin/init auto noprompt
root 2 0 0 17:27 ? 00:00:00 [kthreadd]
root 3 2 0 17:27 ? 00:00:00 [rcu_gp]
root 4 2 0 17:27 ? 00:00:00 [rcu_par_gp]
root 6 2 0 17:27 ? 00:00:00 [kworker/0:0H-events_highpri]
...
动态检测进程 top
top 命令实时监测进程的信息。top 显示的第一行是系统的概述:当前时间、系统运行时间、登录的用户数、系统平均负载;top 显示的第二行是进程的概要信息:有多少进程运行、休眠、停止、僵化状态;第三行显示的是CPU的概要信息:top 根据进程的属主和进程的状态将CPU利用率分成几类;第四行是系统的内存状态;第五行是系统 swap 空间的状态;再下面就是当前运行的进程的详细列表。
在 top 运行时,是按照 CPU 值进行排序的。此时,可以使用多种交互命令重新排序,键入q可以退出。
结束进程
Linux 中进程间通过信号来通信。进程能够识信号并决定忽略还是做出反应。
信号 | 名称 | 描述 |
---|---|---|
1 | HUP | 挂起 |
2 | INT | 中断 |
3 | QUIT | 结束运行 |
9 | KILL | 无条件终止 |
11 | SEGV | 段错误 |
15 | TERM | 尽可能终止 |
17 | STOP | 无条件终止运行,到不终止 |
18 | TSTP | 停止或暂停,但继续在后台运行 |
19 | CONT | 在STOP或TSTP之后恢复执行 |
Linux 的两个可以向进程发送信号的命令:
kill: 默认情况下,kill 会向命令行列出的全部PID发送一个 TERM信号,使用-s参数可以指定其它信号。
killall: 支持通过进程名而不是PID来结束进程。killall 支持使用通配符。
zzz@ubuntu:~$ sleep 300 &
[1] 1777
zzz@ubuntu:~$ ps
PID TTY TIME CMD
1698 pts/0 00:00:00 bash
1777 pts/0 00:00:00 sleep
1778 pts/0 00:00:00 ps
zzz@ubuntu:~$ kill -s QUIT 1777
zzz@ubuntu:~$ ps
PID TTY TIME CMD
1698 pts/0 00:00:00 bash
1781 pts/0 00:00:00 ps
[1]+ 退出 (核心已转储) sleep 300
zzz@ubuntu:~$ ps
2 检测磁盘空间
df 命令
使用 df 命令查看所有以挂载磁盘的使用情况,默认以字节形式显示已挂载磁盘的使用情况。
常用参数:
-h: 将以用户易读的形式显示,用M表述兆字节,用G表示吉字节。
zzz@ubuntu:~$ df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 936M 0 936M 0% /dev
tmpfs 195M 1.6M 193M 1% /run
/dev/sda5 20G 13G 5.2G 72% /
tmpfs 971M 0 971M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 971M 0 971M 0% /sys/fs/cgroup
/dev/loop0 111M 111M 0 100% /snap/core/12821
...
du 命令
du 命令可以显示某个特定的目录的磁盘使用情况,可以用来快速判断系统上某个目录是不是有超大文件。默认情况下会显示当前文件目录下所有文件、目录、子目录的磁盘使用情况,他会以磁盘块为单位来表明每个文件或目录占用了多大存储空间。
常用参数:
-c: 显示所有已列出文件的总大小
-h: 将以用户易读的形式显示,用M表述兆字节,用G表示吉字节
-s: 显示每个输出参数的总计
zzz@ubuntu:~$ du -h my_learning/
8.0K my_learning/.ipynb_checkpoints
36K my_learning/
zzz@ubuntu:~$