top命令
在运维面试中top命令被问到的频率相较于其他命令是比较高的,因为top对运维人员来说太重要了,不仅可以用来查看进程信息、CPU、内存、系统状态等等。运维人员可以据此来进行对系统的维护。
// 在此界面下,使用P 是以CPU的使用情况来进行排序的;M 使以内存的使用情况来进行排序;N 是以PID来进行排序显示;T 是以进程使用时间累计排序显示;k 给某个pid一个信号,用来杀死进程;r 给某个pid重新定制一个nice值(也就是我们常说的优先级);q 是用来退出top的交互模式
// 这个就是top命令输出的内容,有人会感觉很乱,其实top命令可以根据参数来查看你想查看的内容
参数 | 作用 |
---|
-d | 指定每两次屏幕信息刷新之间的时间间隔。 | -p | 通过指定监控进程ID来仅仅监控某个进程的状态。 | -q | 该选项将使top没有任何延迟的进行刷新。 | -S | 指定累计模式 | -s | 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 | -i | 使top不显示任何闲置或者僵尸进程 | -c | 显示整个命令而不只是显示命令名 |
// 当你在top的交互模式按1时可以监控你每个逻辑CPU的状态
// 按f可以进入此视图,按q可以退出此视图
//按”shift+>”或者”shift+<”可以对"%CPU"进行排序
top命令第一行
// 第一行是任务队列信息
- 21:50:47 表示的是当前系统时间
- up 6:26 表示的是当前系统运行了多少时间,格式为,小时:分钟
- 2 users 表示的是当前系统登录的用户数
- load average: 0.00, 0.00, 0.00 这个表示系统负载,即任务队列的平均长度。三个值都为1分钟,这三个值越小越好,越小说明系统负载较低,高于5时就说明系统负载严重了。
top命令第二行
// 第二行表示的是系统的进程信息
- 208 total 表示当前系统的进程总数
- 1 running 表示当前系统正在运行的进程数量
- 207 sleeping 表示当前系统睡眠进程的数量
- 0 stopped 表示当前系统停止的进程数量
- 0 zombie 表示的是当前系统中的僵尸进程个数
top命令第三行
// 第三行表示的是系统CPU的信息
- 0.0 us 表示用户空间占用CPU的百分比
- 0.2 sy 表示的是内核空间占用CPU的百分比
- 0.0 ni 表示用户进程空间内改变过优先级的进程占用CPU百分比
- 99.8 id 表示空闲CPU百分比
- 0.0 wa 表示等待输入输出的CPU时间百分比
- 0.0 hi 表示硬中断占用CPU的百分比
- 0.0 si 表示软中断占用CPU的百分比
- 0.0 st 用于虚拟CPU的情况,表示被虚拟机偷用掉的CPU时间
top命令第四行
// 第四行是系统的内存信息
- 1800.6 total 表示物理内存总量
- 1010.9 free 表示空闲内存总量
- 382.3 used 表示使用物理内存的总量
- 407.5 buff/cache 表示用作内核缓存的内存量
top命令第五行
// 第五行显示的是系统的交换分区的信息
- 2092.0 total 表示交换分区的总量
- 2092.0 free 表示空闲交换区总量
- 0.0 used 表示使用的交换分区总量
- 1255.4 avail Mem 代表可以用于进程下一次分配的物理内存数量
top命令第六行
- PID 表示的是进程的id
- USER 进程归哪个用户所有
- PR 表示优先级
- NI nice值也就是我们所有的优先级,负值的优先级高,正值的优先级比负值低
- VIRT 进程使用的虚拟内存总量,单位为kb,VIRT=SWAP(交换分区)+RES
- RES 表示进程使用的、未被换出的物理内存大小,单位为kb。RES=CODE+DATA
- CODE 表示可执行代码占用的物理内存,单位为kb。
- SHR 表示共享内存的大小,单位也是kb
- S 表示进程状态。D=不可中断的睡眠状态;R=运行’;S=睡眠;T=跟踪/停止;Z=僵尸进程
- %CPU 表示的是上次更新到现在的CPU时间占用百分比
- %MEM 表示的是进程使用的物理内存百分比
- TIME+ 表示的是进程使用的CPU时间总计,单位1/100秒
- COMMAND 表示的是命令名/命令行
- WCHAN 表示若该进程在睡眠,则显示睡眠中的系统函数名
- nFLT 页面错误次数
- nDRT 最后一次写入到现在,被修改过的页面数。
free命令
// free命令是用来查看系统内存的,但是是静态的方式与top命令不太一样。free命令也是运维面试中被问的比较多的一个命令
[root@server ~]# free
total used free shared buff/cache available
Mem: 1843864 390628 1035936 8888 417300 1286336
Swap: 2142204 0 2142204
- total 表示的是内存总数,物理内存总数
- used 已经使用的内存数
- free 表示空闲的内存数
- shared 多个进程共享的内存总额
- buff/cache 缓存内存数
// 内存总数与已使用内存和空闲内存数的关系 total=used+free
还有一个重要点我这里没有但是给大家列出来 -/+ buffers/cache
-buffers/cache:是真正使用的内存数 +buffers/cache:可用的内存数。
-buffers/cache这个其实就是被进程或服务实际使用的内存;而+buffers/cache则是可以使用的内存总数。
参数 | 作用 |
---|
-b | 以字节的形式向屏幕输出 | -k | 以kb的形式向屏幕输出 | -m | 以mb的形式向屏幕输出 | -g | 以gibibytes形式向屏幕输出(这个gibibytes我也不太懂) | -h | 以人类可读的方式向屏幕输出 | -l | 显示详细的低内存和高内存统计信息(简单点就是输出的内容更详细) | -t | 显示total的总和 | -s | 以每多少秒向屏幕输出-s2,就是每隔两秒向屏幕输出一次 | -c | 打印多少次之后退出,-c3,就是向屏幕打印三次之后就退出 | -w | 解释为范围输出,就是把buff/cache分开进行输出。 | -V | 查看free的版本信息,也可以使用 --version查看 |
这里我就不演示具体使用了,大家可以自己去试一下,相信自己。
|