可通过目录前往不同内容
【free】
1.free命令是什么?
- 是用来显示系统内存的使用情况的
2.相关参数?
- -m 以M显示
[root@tong ~]# free
total used free shared buff/cache available
Mem: 1883496 615224 159864 336 1108408 1100888
Swap: 0 0 0
[root@tong ~]# free -m //以M显示
total used free shared buff/cache available
Mem: 1839 600 156 0 1082 1075
Swap: 0 0 0
3.详解
[Mem区]
- total 指系统总物理内存
- used 使用的物理内存大小
- free 指未使用的物理内存大小
- shared 共享的物理内存大小
- buff/cache 首先buff 表示buffer cache 缓冲区,是把磁盘上的块直接搬到内存中(块是操作系统中文件系统的最小寻址单元,当一个块被调入内存时,它要存储在一个缓冲区中,每个缓冲区与一个块对应)
cache =page cache 页高速缓存,是把磁盘中的数据缓存到物理内存中,这样的话系统对磁盘的访问可以变成对物理内存的访问,可以提升系统性能 - available 指可以被应用程序使用的内存大小,如果当系统中的free内存不够时,可以从buff/cache中回收内存满足应用请求(注:理想情况下available=free+buff+cache)
[Swap]
- total 指系统交换空间大小
- used 已经被使用过的交换空间
- free 指未使用的交换空间
(更多详细信息可以通过/proc/meminfo来查看)
附:
1.关于物理内存与交换空间的关系
物理内存:真实的硬件设备(例:内存条)
交换空间(虚拟内存):利用磁盘空间虚拟出的一块逻辑内存,用来解决物理内存的不足的问题
2.使用的话, 当用户提交程序,会产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。另外,内存与swap之间是按照内存页为单位来交换数据的,并且按照’最近最经常使用’算法进行交换数据。
【top】
1.top命令是什么?
- 用于动态的监视进程活动与系统负载等信息(相当于强化版的Windows任务管理器)
2.相关参数
- d 指定每两次屏幕信息刷新之间的时间间隔。
- p 通过指定监控进程ID来仅仅监控某个进程的状态。
- q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
- s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
- i 使top不显示任何闲置或者僵死进程。
- c 显示整个命令行而不只是显示命令名 。 -【top -ic】
[root@tong ~]# top
top - 21:39:14 up 20 days, 8:55, 1 user, load average: 0.01, 0.03, 0.05
Tasks: 62 total, 1 running, 61 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1883496 total, 159244 free, 615676 used, 1108576 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1100448 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 43240 3432 2296 S 0.0 0.2 0:16.09 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.80 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
3.详细分析
第一行
top - 21:39:14 up 20 days, 8:55, 1 user, load average: 0.01, 0.03, 0.05
全局信息 当前系统时间 系统开机运行时间 当前登陆用户数 系统负载:一分钟内的平均值 五分钟内 十五分钟内
也可以通过uptime获取
第二行
Tasks: 62 total, 1 running, 61 sleeping, 0 stopped, 0 zombie
进程信息 进程总数 运行状态进程数 休眠状态进程数 停止状态进程数 僵尸状态进程数
第三行
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
cpu信息 用户空间占用比 内核空间占用比 调整过优先级的用户进程时间 空闲的资源百分比
第四、五行
KiB Mem : 1883496 total, 159244 free, 615676 used, 1108576 buff/cache
内存信息 物理内存总量 空闲物理内存总量 已使用物理内存总量 buffer缓存区使用的内存总量
KiB Swap: 0 total, 0 free, 0 used. 1100448 avail Mem
交换分区信息 交换分区的总量 空闲的交换分区总量 已使用的交换分区总量
第六行
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
进程ID 进程所有者 进程优先级 nice值(负值高优先) 进程使用的虚拟内存总量(kb=swap+res) 进程使用的,未被换出的物理内存大小(kb=code+data) 共享内存大小(kb) 进程状态 进程启动后占CPU比 进程使用的物理内存比 进程使用的CPU时间总计 任务名称
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 43240 3432 2296 S 0.0 0.2 0:16.09 systemd
- VIRT(virtual memory):申请的虚拟内存总量,不管是否都用了没。
- RES(resident memory usage)常驻内存,是进程使用的真实物理内存总和。
- SHR(shared memory)共享内存:这一块内存空间有可能也被其他应用程序使用
- DATA:数据占用的内存(f键)
【进程状态】:
- D:不可中断的睡眠状态:系统不响应系统异步信号,即使使用kill命令也不能将其中断
- R:运行:进程正在运行或在运行队列中等待
- S:睡眠:进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
- T:停止:进程收到停止信号后停止运行
- Z:僵尸进程:进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统调用后释放;僵尸进程是当子进程比父进程先结束, 而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。
一般一个进程执行过程是
【更多-排序】:
- N 以 PID 的大小的顺序排列表示进程列表
- M 根据驻留内存大小进行排序。
- P 根据CPU使用百分比大小进行排序。
- T 根据时间/累计时间进行排序。
【示例】:
- top 每隔5秒显示所有进程的资源占用情况(默认)
- top -d 3 每隔3秒显式所有进程的资源占用情况
- top -p 12345 -p 6789 每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
【查看多核CPU命令】:
- mpstat -P ALL
- sar -P ALL
【ps】
1.ps 是什么?
- 用于查看系统中的进程状态
2.相关参数
- a 显示所有进程(包括其他用户的进程)
- -u 用户以及其他详细信息
- -x 显示没有控制终端的进程
附:ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的,可以用kill来杀死进程
操作:
[root@tong ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 43240 3432 ? Ss Mar04 0:16 /usr/lib/systemd/systemd --system --deserialize
root 2 0.0 0.0 0 0 ? S Mar04 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Mar04 0:01 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Mar04 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S Mar04 0:03 [kworker/u2:0]
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
进程所有者 进程号 cpu占用率 内存占用率 虚拟内存使用量 占用的固定内存量 所在终端 进程状态 被启动时间 时间使用cpu时间 命令名称与参数
3.关于STAT
STAT状态有很多,Ss、Ss1、Ss+、S<、R+、S<s1、S<s
- S:进程处在睡眠状态(idle),但可以被唤醒(signal),表明这些进程在等待某些事件发生–可能是用户输入或者系统资源的可用性
- D:不可中断 Uninterruptible(usually IO),不可被唤醒状态,通常这个程序可能在等待I/O的情況
- R:正在运行,或在队列中的进程
- T:停止状态(stop),可能是在工作控制(暂停)或出错
- Z (Zombie):僵死状态,程序已经终止但却无法被移除
- X:死掉的进程
- <:优先级
- n:低优先级
- s:包含子进程
- +:位于后台的进程组