在以前使用windows系统的时候,常常会遇到系统变卡,然后我们就会使用快捷键 ctrl+shift+ESC 来调出windows的任务管理器,我们可以看到当前运行的进程,进程所占的CPU资源,内存资源等,还可以直接强制结束掉进程。
我们在使用linux的时候也同样会出现这样的问题,如果你遇到了,那么你就要学会这些linux查看系统资源的命令。
[toc]
下面我分为这么几个角度分别说下这些命令的使用:
整机CPU内存硬盘磁盘网络I/Otop 命令
参数说明:
常用命令说明:
当我们输入top命令后我们可以看到:
其中有一行是白色的,白色中显示的是字段名称:
PID: 进程id号
PPID:父进程id号
UID:有效用户id号
USER:有效用户名
RUSER: 真实用户名
TTY:终端设备
%CPU:计算资源
%MEN:内存
%TIME+:CPU时间
VIRT:virtual memory usage 虚拟内存
进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
当dll内存被映射到进程空间中,每个进程都有自己的全局内存拷贝,加载dll的每一个新的进程都重新初始化这一内存区域,也就是说进程不能再共享dll。linkmap里有了每个目标文件每个方法每个数据的占用大小数据,所以只要写个脚本,就可以统计出每个.o最后的大小,属于一个.a静态链接库的.o加起来,就是这个库在app里占用的空间大小。其中,targetworkingsetsize指的是预期降到的工作集大小,currentworkingset指的是进程当前的工作集(在chrome中,工作集的大小,包含私有的和可共享的两部分内存,而不包含已经共享了的内存空间…),lastworkingset,等于上一次的currentworkingset除以dampingfactor,默认的dampingfactor为2。
SHR:shared memory 共享内存
除了自身进程的共享内存,也包括其他进程的共享内存虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小计算某个进程所占的物理内存大小公式:RES – SHRswap out后,它将会降下来uptime 命令
简化版top命令
从上面的参数,top命令显示的内容,我们就可以看到很多的参数,也是特别详细的,但是我们可能有时候就只是想了解一些简单的信息,这时候我们就可以使用uptime这个命令了。
root@VM-0-4-ubuntu:~# uptime
15:17:22 up 171 days, 16:56, 1 user, load average: 0.00, 0.02, 0.02
参数
vmstat 命令
vmstat命令可以查看很多信息,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。但是我们一般使用vmstat命令一般常用来查看cpu的情况。
参数
每2秒采集一次每次采集
25. 设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,,在磁盘上每8个pages将消耗1byte的内存。设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,在磁盘上每8个pages将消耗1byte的内存。iops:刚才提到数据从磁盘读取到内存,或者数据从内存写到磁盘都需要消耗io,而磁盘的io能力是有一定,比如新1型提供的iops为150个,也就是每秒能够提供150次的随机磁盘io操作,所以如果用户的数据量很大,内存很小,而写入,更新linux常用命令,删除,查询的压力很大,由于iops的限制,对于数据库来说就是一条sql需要执行很长的时间才能返回结果,对于应用来说就会造成整体响应的变慢。