Linux查看内存占用情况和磁盘空间
1 ps命令
ps(process status)命令用于查看当前系统的进程状态,可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。
1.1 ps命令使用
1.1.1 ps
# 直接输入ps,显示当前进程 ps
- PID:(Process ID)唯一的进程 ID
- TTY:(Teletypewriter)它指的是终端类型或终端设备,用于用户与计算机进行交互的输入输出设备,例如终端窗口或控制台。
- TIME:进程运行过程中占用 CPU 的总时间(以分钟和秒为单位),简单理解就是 CPU 运行这个进程消耗的时间。
- CMD:启动进程的命令的名称
执行 ps 命令时,TIME 显示为 00:00:00。这意味着该进程尚未使用 CPU ,所以没有 CPU 执行的总时间。
1.1.2 ps -ef 或者 ps aux
# 查看所有进程及相应的信息 ps -ef ps aux
- UID:进程对应的用户,通常是运行该进程的用户的账户名称
- PID:进程编号
- PPID:父进程ID,表示创建该进程的父进程的ID
- C:CPU使用率,表示该进程占用CPU的百分比
- STIME:start time,表示该进程的启动时间
- TTY:终端类型,如果进程与某个终端关联,则显示该终端的名称,否则显示“?"
- TIME:进程实际使用CPU的时间,通常以分钟或小时为单位。
- CMD:启动进程的命令或是命令行
ps -aux
- USER:进程的拥有者。这通常是运行该进程的用户帐户的名称。
- PID: 进程ID。每个进程都有一个唯一的ID,用于标识该进程。
- %CPU: 该进程占用的CPU使用率百分比。
- %MEM: 该进程占用的物理内存使用率百分比。
- VSZ: 虚拟内存大小,单位是KB。这表示进程使用的虚拟内存量。
- RSS: 常驻集大小,单位是KB。这表示进程在物理内存中占用的固定大小。
- TTY: 终端类型。如果进程没有与任何终端关联,则显示为"?"。
- STAT: 进程状态。这描述了进程的当前状态,例如运行中、休眠等。
- START: 进程启动的时间。
- TIME: 该进程实际使用CPU的时间,单位是小时:分钟:秒。
- COMMAND: 启动进程的命令名称或命令行。
1.1.3 ps -u 用户名
# 查看指定用户的进程 ps -u 用户名 ps -u root
1.1.4 ps -p PID
# 按照进程的id查看进程信息 # 查看pid为1的进程信息 ps -p 1
1.1.5 ps -o 指定信息
# 自定义显示信息,用户可以指定自己想要的信息进行显示 ps -o pid,tty,cmd ps -eo pid,tty,cmd
1.1.6 其他用法
ps -e #显示所有进程 ps -A # 显示所有进程 ps -a #显示终端上的所有进程,包括其他用户 ps -axjf # 显示进程树
1.2 ps命令的组合使用
1.2.1 按照cpu或者内存占用率排序
# 按照CPU使用率降序显示进程 ps aux --sort=-%cpu # 按照内存使用率降序显示进程 ps aux --sort=-%mem # 只显示前10个 ps aux --sort=-%cpu | head ps aux --sort=-%mem | head
1.2.2 与grep命令结合使用
查找指定用户的进程
# 查找root用户的所有进程 ps aux | grep root
1.2.3 与sort结合使用实现进程排序 - # ps aux | head -1 获取标题
- # sort 命令进行排序
- # -r 表示倒序排列
- # -n 表示按照数值大小排序
- # -k +3 表示按照第三列进行排序,第三列是CPU
- # head 默认显示前10条
- # head -n 条数 可以设置显示多少条
- # ; 分号用于分隔命令
- # 获取CPU资源占用最多的10个进程
- ps aux | head -1;ps aux | sort -rn -k +3 | head
- # 获取内存占用资源最多的10个进程
- ps aux | head -1; ps aux | sort -rn -k +4 | head
复制代码
2 top命令
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
2.1 top命令使用
- PID:进程id
- USER:进程所有者的用户名
- PR:优先级
- NI:nice值。负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR:共享内存大小,单位kb
- S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程使用的CPU时间总计,单位1/100秒
- COMMAND:命令名/命令行
默认进入top时,各进程是按照CPU的占用量来排序的。 top命令按ctrl + c进行退出
2.2 top命令显示页面执行的功能
首先使用top命令,进入到top显示页面
? - 显示所有top显示模式下可以输入的功能
在上图所示的显示页面下,输入**?**,可以显示所有的命令 按ESC退出所有命令的显示,重新进入进程查看页面
P - 以CPU使用资源进行排序显示
在进程查看页面输入P,可以按照CPU使用资源进行排序
M - 以内存使用资源进行排序显示
在进程查看页面输入M,可以按照内存使用资源进行排序
N - 以PID排序显示
T - 按照进程使用时间排序显示
q - 表示退出
r - 重新指定nice值(优先级)
k - 杀死进程
3 free命令
查看内存的使用、空闲、缓存、交换空间 - free -b # byte为单位显示
- free -k # kb为单位显示
- free -m # mb为单位显示
- free -g # G为单位显示
- free -h # 自动匹配人类可读并且合适的单位
复制代码
4 df 命令
以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息 - df # 显示空间信息
- df -h # -h选项会根据合适的大小显示
复制代码
- Filesystem 文件系统
- Size 分区大小
- 1k-blocks 单位是1KB(使用df查看)
- Used 已用容量
- Avail 还可用的容量
- Use% 已用百分比
- Mounted on 挂载点
5 du命令
du (disk usage),含义为显示磁盘空间的使用情况,用于查看当前目录的大小 - # 查看当前目录的大小
- du -sh
- # 查看指定目录的大小
- du -sh 文件或目录
复制代码
- # 查看当前文件夹下所有文件大小
- du -h
- # 查看指定文件夹下所有文件大小(包含子文件夹)
- du -h 目录或者文件
- # 返回当前文件夹下的文件总数
- du -sm
- # 返回指定文件夹下的文件总数
- du -sm 文件夹
复制代码
du命令常用参数
- -s: 对每个Names参数只给出占用的数据块总数
- -a: 递归地显示指定目录中各文件及子目录中各文件占用的数据块数
- -b: 以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)
- -k: 以1024字节为单位列出磁盘空间使用情况
- -c: 最后再加上一个总计(系统默认设置)
- -l: 计算所有的文件大小,对硬链接文件,则计算多次
- -x: 跳过在不同文件系统上的目录不予统计
- -h: 以K,M,G为单位,提高信息的可读性
|