Linux中查看系统资源占用情况的命令
发布时间:2022-03-24 17:59:49

Linux中查看系统资源占用情况的命令

用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...

  还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。

  top:

  主要参数

  d:指定更新的间隔,以秒计算。

  q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。

  c:显示进程完整的路径与名称。

  S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。

  s:安全模式。

  i:不显示任何闲置(Idle)或无用(Zombie)的行程。

  n:显示更新的次数,完成后将会退出to

  显示参数:

  PID(Process ID):进程标示号。

  USER:进程所有者的用户名。

  PR:进程的优先级别。

  NI:进程的优先级别数值。

  VIRT:进程占用的虚拟内存值。

  RES:进程占用的物理内存值。

  SHR:进程使用的共享内存值。

  S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。

  %CPU:该进程占用的CPU使用率。

  %MEM:该进程占用的物理内存和总内存的百分比。

  TIME+:该进程启动后占用的总的CPU时间。

  Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

  top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。

  <空格>:立刻刷新。

  P:根据CPU使用大小进行排序。

  T:根据时间、累计时间排序。

  q:退出top命令。

  m:切换显示内存信息。

  t:切换显示进程和CPU状态信息。

  c:切换显示命令名称和完整命令行。

  M:根据使用内存大小进行排序。

  W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

  free

  1.作用

  free命令用来显示内存的使用情况,使用权限是所有用户。

  2.格式

  free [-b-k-m] [-o] [-s delay] [-t] [-V]

  3.主要参数

  -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。

  -s delay:显示每隔多少秒数来显示一次内存使用情况。

  -t:显示内存总和列。

  -o:不显示缓冲区调节列。

  uptime

19:54:07 up 388 days,  5:08,  1 user,  load average: 0.02, 0.01, 0.00

  现在的时间

  系统开机运转到现在经过的时间

  连线的使用者数量

  最近一分钟,五分钟和十五分钟的系统负载

  参数: -V 显示版本资讯。

  vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 325012      0 1203316    0    0    20     6    0    0  0  1 99  0  0

  1. 观察磁盘活动情况

  磁盘活动情况主要从以下几个指标了解:

  bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。

  bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。

  wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。

  2. 观察cpu活动情况

  vmstat比top更能反映出cpu的使用情况:

  us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。

  sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。

  id:cpu空闲的时间比例。

  wa:cpu等待未决的磁盘IO的时间比例。

  iostat

  用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量

  参数:

  -c 只显示CPU行

  -d 显示磁盘行

  -k 以千字节为单位显示磁盘输出

  -t 在输出中包括时间戳

  -x 在输出中包括扩展的磁盘指标

  

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.36    0.01    0.63    0.04    0.00   98.96

  %iowait 等待本地I/O时CPU空闲时间的百分比

  %idle 未等待本地I/O时CPU空闲时间的百分比  

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.92        40.33        12.50 1352749598  419162541

  每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。

  系统

  # uname -a # 查看内核/操作系统/CPU信息

  # head -n 1 /etc/issue # 查看操作系统版本

  # cat /proc/cpuinfo # 查看CPU信息

  # hostname # 查看计算机名

  # lspci -tv # 列出所有PCI设备

  # lsusb -tv # 列出所有USB设备

  # lsmod # 列出加载的内核模块

  # env # 查看环境变量

  资源

  # free -m # 查看内存使用量和交换区使用量

  # df -h # 查看各分区使用情况

  # du -sh # 查看指定目录的大小

  # grep MemTotal /proc/meminfo # 查看内存总量

  # grep MemFree /proc/meminfo # 查看空闲内存量

  # uptime # 查看系统运行时间、用户数、负载

  # cat /proc/loadavg # 查看系统负载

  磁盘和分区

  # mount | column -t # 查看挂接的分区状态

  # fdisk -l # 查看所有分区

  # swapon -s # 查看所有交换分区

  # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

  # dmesg | grep IDE # 查看启动时IDE设备检测状况

  网络

  # ifconfig # 查看所有网络接口的属性

  # iptables -L # 查看防火墙设置

  # route -n # 查看路由表

  # netstat -lntp # 查看所有监听端口

  # netstat -antp # 查看所有已经建立的连接

  # netstat -s # 查看网络统计信息

  进程

  # ps -ef # 查看所有进程

  # top # 实时显示进程状态

  用户

  # w # 查看活动用户

  # id # 查看指定用户信息

  # last # 查看用户登录日志

  # cut -d: -f1 /etc/passwd # 查看系统所有用户

  # cut -d: -f1 /etc/group # 查看系统所有组

  # crontab -l # 查看当前用户的计划任务

  服务

  # chkconfig --list / systemctl list-dependencies # 列出所有系统服务

  # chkconfig --list | grep on # 列出所有启动的系统服务

  程序

  # rpm -qa # 查看所有安装的软件包

 

 

 

linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

或者top (然后按下M,注意这里是大写)

说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)

sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。

head -K(K指代行数,即输出前几位的结果)

|为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。

 

 

linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:

ps aux|grep -v PID|sort -rn -k +4|head

或者top (然后按下P,注意这里是大写)