ps | 列出进程 |
uptime | 查看系统负载 |
w | 列出所有用户的活动进程 |
top | 监视进程资源占用情况 |
gnome-system-monitor | 监视系统负载和进程的图形化工具 |
xload | 监视系统负载情况的简单图形化工具 |
free | 显示可用内存情况 |
进程(process)是linux系统的工作单位。所运行的每个程序都会引发一个或多个进程。linux提供了一些命令用于查看,操作这些进程。每个进程都以一个独有的数字代码标示,称作进程ID或PID。
ps
ps [option]
ps命令显示正在运行的进程信息,也可显示其他用户的进程。ps至少有80个选项,这里只讨论其中几个最有用的组合。
1. 查看自己的进程
$ ps -ux
2. 查看用户root的所有进程:
$ ps -U root
3. 查看特定程序引发的所有进程:
$ ps -C java
4. 查看终端N的进程(这里查看3的终端):
$ ps -t3
5. 查看特定进程,如:pid为1,2:
$ ps -p1,2
6. 对所有进程连同命令行,截断其超出屏幕宽度的部分:
$ ps -ef
7. 所有进程连同完整的命令行:
$ps -efww
8. 以缩排方式呈现所有进程的层次关系:
$ ps -efH
记住,可以用grep或其他过滤程序从ps的输出中提取特定的信息(java为例):
$ ps -ux | grep java
uptime
uptime命令用于显示自上次启动后,系统运行了多长时间。
自左至右,各字段的意义分别为:当前时间,系统运行时间,当前登录的用户数,一分钟系统平均负载,5分钟系统平均负载,15分钟系统平均负载。平均负载是单位时间段内活动进程的平均数。
w
w [username]
w命令用于显示每个已登录用户的每个shell的当前进程
第一行是uptime显示的。其后是各栏信息的标题,分别代表登录用户名,用户终端,源主机或X界面(如有),登录时间,挂起时间,两种CPU时间的测量值和当前进程。如果只想看特定用户的信息,请为w提供该用户名:
$ w fuhd
top
top [options]
top命令用于监视最活跃的进程,并自动更新显示(比如每秒更新一次)。top是一个交互式的命令行程序,可以在屏幕上更新自己的显示。
$ top
top命令的顶部(第一行)与uptime命令一样。第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行,睡眠,停止,僵尸进程的数量。第三行显示的是CPU状态。us(user): 运行(未调整优先级的)用户进程的CPU时间。sy(system):运行内核进程的CPU时间。ni(niced):运行已调整优先级的用户进程的CPU时间。wa(IO wait):用于等待IO完成的CPU时间。hi:处理硬件中断的CPU时间。si:处理软件中断的CPU时间。st:这个虚拟机被hypervisor偷去的CPU时间。接下来第四,五行显示内存使用率,有点像free命令。第四行是物理内存使用,第五行是虚拟内存使用(交互空间)。物理内存显示如下:全部可用内存,已使用内存,空闲内存,缓冲内存。相似地交换部分显示的是:全部,已使用,空闲和缓冲交换空间。接下来,是一个不断变动的表格,表头有:PID(进程ID),USER(进程所有者的实际用户名),PR(进程的调度优先级),NI(进程的nice值,也是优先级),VIRT(进程使用的虚拟内存),RES(驻留内存大小),SHR(SHR是进程使用的共享内存),S(这个是进程的状态),%CPU(自从上一次更新时到现在任务所使用的CPU时间百分比),%MEM(进程使用的可用物理内存百分比),TIME+(任务启动后到现在所使用的全部CPU时间,精确到百分之一秒),COMMAND(运行进程所使用的命令)。
top是一个交互式程序。在它运行过程中,可以通过按键来改变它的行为,比如设置更新速度(s),隐藏挂起的进程(i),终止进程(k)等。按h键可以显示完整的按键列表,按q键退出列表显示。
常用选项:
-nN | 更新N次后退出 |
-dN | 每N秒更新一次显示 |
-pN -pM... | 只显示PID为N,M...(最多20个)的进程 |
-c | 显示进程的命令行参数 |
-b | 直接在标准输出上显示,不进行屏幕控制。可以使用top -b -n1 > outfile将画面快照保存到文件中 |
gnome-system-monitor
gnome-system-monitor是一个图形工具,用于显示每个进程的系统负载,活动进程列表,存储器信息,文件系统信息及其他信息。
free
free [options]
free以千字节为单位显示内存使用情况:
total表示总计物理内存的大小,used表示已使用多大,free表示可用有多少,shared表示多个进程共享的内存总额,Buffers/cached表示磁盘缓存大小。第三行(-/+ buffers/cache)中,used表示已使用多大,free表示可用有多大。第四行是交换分区SWAP的,也就是我们通常所说的虚拟内存。第二行(mem)的used/free与第三行(-/+ buffers/cache)used/free的区别。这两个的区别在于使用的角度,第二行是从OS的角度来看,因为对于OS,buffers/cached都是属于被使用,对于第三行来说,它是从应用程序角度来看,对于应用程序来说,buffers/cached是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以第二行的free加上buffers与cached的值就等于第三行的free的值了,这就是对应用程序来说的可用内存。
linux内核尽可能地将内存用作缓存区,因此上述例子中,估计的空闲内存包含buffers/cache行,free栏(如:6676536K)
常用选项:
-s N | 连续运行,每N秒更新一次显示 |
-b | 以字节为单位显示 |
-m | 以M字节为单位显示 |
-t | 在最后新增行显示总的统计信息 |
-o | 不显示"buffers/cache"行 |