使用top查看进程和系统负载信息
引言
使用top命令,可以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等,top可以以一定频率更新这些统计信息。下面我们来学习top命令的具体使用方法。
默认输出
top命令的默认输出如下:
top - :: up :, users, load average: 1.48, 1.47, 1.39 Tasks: total, running, sleeping, stopped, zombie Cpu(s): 0.1%us, 2.5%sy, 0.0%ni, 97.2%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 15945M total, 1726M used, 14219M free, 48M buffers Swap: 8197M total, 0M used, 8197M free, 1196M cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND root R : root 273m 67m 11m S : root S :45.68 kipmi0 root - 19m S :16.06 had root RT S :
以上输出上下分成两部分,上半部分显示了整体系统负载情况,各行含义如下:
- top一行:从左到右依次为当前系统时间,系统运行的时间,系统在之前1min、5min和15min内cpu的平均负载值
- Tasks一行:该行给出进程整体的统计信息,包括统计周期内进程总数、运行状态进程数、休眠状态进程数、停止状态进程数和僵死状态进程数
- Cpu(s)一行:cpu整体统计信息,包括用户态下进程、系统态下进程占用cpu时间比,nice值大于0的进程在用户态下占用cpu时间比,cpu处于idle状态、wait状态的时间比,以及处理硬中断、软中断的时间比
- Mem一行:该行提供了内存统计信息,包括物理内存总量、已用内存、空闲内存以及用作缓冲区的内存量
- Swap一行:虚存统计信息,包括交换空间总量、已用交换区大小、空闲交换区大小以及用作缓存的交换空间大小
下半部分显示了各个进程的运行情况,各列含义如下:
- PID: 进程pid
- USER: 拉起进程的用户
- PR: 该列值加100为进程优先级,若优先级小于100,则该进程为实时(real-time)进程,否则为普通(normal)进程,实时进程的优先级更高,更容易获得cpu调度,以上输出结果中,java进程优先级为120,是普通进程,had进程优先级为2,为实时进程,migration 进程的优先级RT对应于0,为最高优先级
- NI: 进程的nice优先级值,该列中,实时进程的nice值为0,普通进程的nice值范围为-20~19
- VIRT: 进程所占虚拟内存大小(默认单位kB)
- RES: 进程所占物理内存大小(默认单位kB)
- SHR: 进程所占共享内存大小(默认单位kB)
- S: 进程的运行状态
- %CPU: 采样周期内进程所占cpu百分比
- %MEM: 采样周期内进程所占内存百分比
- TIME+: 进程使用的cpu时间总计
- COMMAND: 拉起进程的命令
top命令默认输出提供了很多信息,为获取我们关注的信息,可以使用top命令选项,也可以在top运行中使用快捷键过滤输出信息、根据cpu使用率等值对进程进行排序,下面给出具体使用例子。
对输出结果进行排序
top输出的下半部分有很多进程信息列,我们可以根据这些列对进程输出进行排序,默认情况下根据cpu使用率对进程排序。在top命令执行时,按”O”,可以看到排序项以及相应的按键:
Current Sort Field: K :Def Select sort field via field letter, type any other key to return a: PID = Process Id b: PPID = Parent Process Pid c: RUSER = Real user name d: UID = User Id ……
各项默认以从大到小排序,top运行中,按”R”可反向显示输出结果。
显示特定用户相关进程
在top运行时,按”u”快捷键,可以过滤出特定用户拉起的进程:
Which user (blank for all): sshusr PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND sshusr R :26.05 a.out sshusr S :00.00 sash sshusr S :00.04 bash
执行top命令时,使用”top -u sshusr”可以起到相同效果。
显示特定进程
执行top时,使用”-p”选项可以指定要显示的进程:
# top -p , PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND sshusr R :03.57 a.out sshusr S :00.00 sshd
显示所有cpu核使用情况
默认情况下,top上半部分资源负载信息中,显示的是cpu整体的使用情况:
top - :: up :, users, load average: 2.02, 2.12, 2.17 Tasks: total, running, sleeping, stopped, zombie Cpu(s): 8.5%us, 2.4%sy, 0.0%ni, 88.9%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
按数字”1”快捷键,可以开启/关闭显示各个cpu核的信息:
Cpu0 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 :100.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
更改top命令显示频率
默认情况下,top命令以3秒的频率更新输出结果,top命令执行时,按”d”可以更新top更新频率:
Change delay from PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND sshusr R :53.58 a.out root R :
执行top命令时,使用”-d”选项也可以指定top输出跟新频率。另外,按空格键,可以手动更新输出。
显示命令的全路径和参数
top运行时,按”c”快捷键,将显示命令的全路径以及命令参数:
sshusr R :40.02 ./a.out root 220m S :48.42 /opt/HPI/HPI_ALARM/runHpiAlarm root S :51.01 /opt/VRTSvcs/bin/HostMonitor -type HostMonitor -agdir /
指定显示的进程数目
top默认依据窗口大小显示进程数,有时我们对进程排序后,只想关注排在前面的几个进程,使用”-n”快捷键可以达到目的:
Maximum tasks = , change to ( is unlimited): PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND root R : root 220m S :17.93 runHpiAlarm
在top中向进程发送信号
top运行时,按”k”快捷键,可向指定进程发送信号,默认信号为SIGTERM,该信号可中止进程:
PID to Kill PID with signal []: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND sshusr R :33.45 a.out root R :
更改进程的nice优先级值
top运行时,按”r”快捷键,可以修改指定进程的nice优先级:
PID to Renice PID to value: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND sshusr R :03.96 a.out root R :
保存top配置
为看到我们关注的进程、信息,用了很多快捷键,若下次运行top时,想要看到之前关心的内容,又要敲一遍快捷键,这相当不方便。使用”W”快捷键,可以把当前显示配置保存到~/.toprc文件中。
例如以1秒的频率查看前10个占用内存最多的进程,我们需要敲下列快捷键:
n: Maximum tasks = , change to ( is unlimited): M: 快捷键”M”指示进程根据内存使用率从大到小排序
之后按下”W”可以对配置进行保存:
W: Wrote configuration to '/root/.toprc'
退出再执行top命令,可以看到top以1秒的频率查看前10个占用内存最多的进程,与我们之前保存的配置相符。
Reference: Can You Top This? 15 Practical Linux Top Command Examples
使用top查看进程和系统负载信息的更多相关文章
- linux中使用top获取进程的资源占用信息
在linux中使用top获取进程的资源占用信息: Cpu(s): 1.0%us, 0.0%sy, 0.0%ni, 98.3%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0 ...
- 查询系统负载信息 Linux 命令详解
linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长 时间,信息显示依次为:现在时间.系统已经运 ...
- Linux 命令查询系统负载信息
linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令过去只显示系统运行多久.现在,可以显示系统已经运行了多长 时间,信息显示依次为:现在时间.系统已经运 ...
- linux uptime-查看Linux系统负载信息
更多linux 性能监测与优化 关注:linux命令大全 uptime命令能够打印系统总共运行了多长时间和系统的平均负载.uptime命令可以显示的信息显示依次为:现在时间.系统已经运行了多长时间.目 ...
- top查看进程的参数
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不 ...
- [kipmi0]进程导致系统负载高
最近一个用户这边服务器运行四五天就会出现服务器负载很高的情况,原本正常是0.3~0.5左右 不正常的时候会达到3,重启机器就正常,开始以为是程序问题,后来在观察的时候把程序给杀掉了 然后重启,结果负 ...
- 转:[kipmi0]进程导致系统负载高
最近一个用户这边服务器出现服务器负载很高的情况,原本正常是0.3~0.5左右 不正常的时候会达到3,重启机器就正常,开始以为是程序问题,后来在观察的时候把程序给杀掉了 然后重启,结果负载还是很高,于 ...
- linux中uptime命令获取主机运行时间和查询系统负载信息
系统中的uptime命令主要用于获取主机运行时间和查询linux系统负载等信息.uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间.系统已经运行了多长时间.目前有多少登陆用户.系 ...
- 查看XBox360的系统版本信息
XBox360的系统版本信息在系统设置界面就能看到: Step1:按手柄中央的"西瓜键",进入系统设置界面 Step2:在系统设置界面选择"主机设定" Step ...
随机推荐
- android_layout_relativelayout(二)
官网上的一个xml文件: <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmln ...
- 【AI】Android Pie中引入的AI功能
前言 “无AI,不未来”,绝对不是一句豪情壮语,AI早已进入到了我们生活当中.去年Google发布的Android Pie系统在AI功能方面就做了重大革新,本文就对Google在新系统中引入的AI功能 ...
- VUE+element tree 实现权限管理
先写个标题~ ~,后续有空在写 具体功能: 1. 获取所有角色权限列表展示,点击进行编辑,编辑用terr树形结构显示页面结构 2.提交的数据格式(页面名称,角色ID,父节点ID,子节点ID) 3.后面 ...
- HAproxy+Keepalived实现高可用
HAproxy+Keepalived实现高可用 说明: HA1:HAproxy+Keepalived(master) HA2:HAproxy+Keepalived(backup) 1.HA1上keep ...
- 整型,布尔值,字符串详解,for语句 练习
2019 年 7 月 8 日 1.将今天的课上的代码敲一遍,然后整理笔记 已完成 2.有变量name = "aleX leNb" 完成如下操作: 移除 name 变量对应的值两边的 ...
- Mysql常用增删查改及入门(二)
常用:数据库常用就是DML:增删查改 1.增加数据: insert into 表名 values (值1,值2...); insert into 表名 (字段1,字段2) values (值1,值2) ...
- 【译】深入理解G1的GC日志(一)
本文翻译自:https://www.redhat.com/en/blog/collecting-and-reading-g1-garbage-collector-logs-part-2?source= ...
- HDU-1576 A/B 基础数论+解题报告
HDU-1576 A/B 基础数论+解题报告 题意 求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973) (我们给定的A必能被B整除,且gcd(B,9973) = 1). 输入 数据 ...
- 浅谈redis
1.Redis简介: Redis是一个开源的使用ANSI C语言编写,遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务 ...
- 使用RabbitMQ做数据接收和处理时,自动关闭
场景:N个客户端向MQ里发送数据:服务器上有另一个控制台程序(假设叫ServerClient)来处理这里数据(往数据库保存).方向为Client * n→MQSERVER→ServerClient 问 ...