写在前面
学会这几个基本的、常用的系统命令,排查问题效率高10倍
top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
top命令有一些参数
top -h
top usage: top
[-a | -d | -e | -c <mode>]
[-F | -f]
[-h]
[-i <interval>]
[-l <samples>]
[-ncols <columns>]
[-o <key>] [-O <secondaryKey>]
keys: pid (default), command, cpu, cpu_me, cpu_others, csw,
time, threads, ports, mregion, mem, rprvt, purg, vsize, vprvt,
kprvt, kshrd, pgrp, ppid, state, uid, wq, faults, cow, user,
msgsent, msgrecv, sysbsd, sysmach, pageins, boosts, instrs, cycles
[-R | -r]
[-S]
[-s <delay>]
[-n <nprocs>]
[-stats <key(s)>]
[-pid <processid>]
[-user <username>]
[-U <username>]
[-u]
top命令结果说明
- uptime:系统的运行时间和平均负载。
- tasks:当前运行的进程和线程数目。
- CPU:总体 CPU 使用率和各个核心的使用情况。
- 内存(Memory):总体内存使用情况、可用内存和缓存。
进程信息:
- PID:进程的标识符。
- USER:运行进程的用户名。
- PR(优先级):进程的优先级。
- NI(Nice值):进程的优先级调整值。
- VIRT(虚拟内存):进程使用的虚拟内存大小。
- RES(常驻内存):进程实际使用的物理内存大小。
- SHR(共享内存):进程共享的内存大小。
- %CPU:进程占用 CPU 的使用率。
- %MEM:进程占用内存的使用率。
- TIME+:进程的累计 CPU 时间。
lsof
lsof(list open files)是一个查看进程打开的文件的工具。
在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息
lsof -h
查看命令详情
常用选项
-a 指示其它选项之间为与的关系
-c <进程名> 输出指定进程所打开的文件
-d <文件描述符> 列出占用该文件号的进程
+d <目录> 输出目录及目录下被打开的文件和目录(不递归)
+D <目录> 递归输出及目录下被打开的文件和目录
-i <条件> 输出符合条件与网络相关的文件
-n 不解析主机名
-p <进程号> 输出指定 PID 的进程所打开的文件
-P 不解析端口号
-t 只输出 PID
-u 输出指定用户打开的文件
-U 输出打开的 UNIX domain socket 文件
-h 显示帮助信息
-v 显示版本信息
ps
ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
最常用命令:ps -ef | grep 进程关键字
消耗内存前10排序的进程:ps aux | sort -k4nr |head -n 10
消耗CPU前10排序的进程:ps aux | sort -k3nr |head -n 10
用ps aux
命令会展示下面这些列:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
sort -k3nr
表示按照第3
列递减排序
head -n 10
表示展示前10条
IO
每隔1s查询一次 共查询10次:iostat 1 10
路由信息
查看主机路由信息:netstat -rn
du
du (英文全拼:disk usage)命令用于显示目录或文件的大小。
常用参数:
- h:以K,M,G为单位,提高信息的可读性
- d:后面加一个数字,表示递归显示层次。一般用法:
du -d 1 -h
这个命令最常用的是当磁盘不够用需要删除某些文件的时候,可以通过这个命令查看那个目录或者文件比较大,从而删除。
参考
[1]Linux centos内存高,查看占用内存命令
[2]linux查看进程占用cpu、内存、io信息
[3]Linux top 命令
[4]lsof(list open files)是一个查看进程打开的文件的工具
[5]Linux du 命令