性能检测命令集合
uptime:
打印系统总共运行时间和平均负载
20:12:39 系统的时间 up 51 days, 5:44, 主机运行的时间,可以说明系统的稳定性 load average: 0.03, 0.01, 0.00 系统平均负载,统计最近1 5 15分钟的系统平均负载 注意:平均负载是指在特定时间间隔内可运行状态和不可中断状态的平均进程数。
所谓可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,
处于 R 状态(Running 或 Runnable)的进程。 不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是
等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。 比如,当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,
这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题。
评判标准:
当平均负载为 2 时,意味着什么呢? 在只有 2 个 CPU 的系统上,意味着所有的 CPU 都刚好被完全占用。 在 4 个 CPU 的系统上,意味着 CPU 有 50% 的空闲。 而在只有 1 个 CPU 的系统中,则意味着有一半的进程竞争不到 CPU。
平均负载什么时候最合理
[root@VM_0_10_centos ~]# cat /proc/cpuinfo |grep "model name" | wc -l 1 查看cpu的个数之后 在一个单 CPU 系统上看到平均负载为 1.73,0.60,7.98,那么说明在过去 1 分钟内,系统有 73% 的超载,
而在 15 分钟内,有 698% 的超载 我们要结合三个不同时间间隔的平均值,当平均负载高于 CPU 数量 70% 的时候 把系统的平均负载监控起来,然后根据更多的历史数据,判断负载的变化趋势。当发现负载有明显升高趋势时
,比如说负载翻倍了,你再去做分析和调查。
平均负载与CPU使用率的不同:
简单来讲就是,使用率是一定要用CPU进行计算等功能的,而负载不一定,负载包括了在等待的进程
平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用 CPU 的进程
还包括等待 CPU 和等待 I/O 的进程。 而 CPU 使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。比如: CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的; I/O 密集型进程,等待 I/O 也会导致平均负载升高,但CPU 使用率不一定很高; 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高
查看物理CPU又多少个:
cat /proc/cpuinfo | grep "physical id" |wc -l
查看CPU又多少核:processor 代表的是逻辑核
cat /proc/cpuinfo | grep "processor" |wc -l
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TOP命令
实时动态地查看系统的整体运行情况
top - 11:22:25 up 51 days, 20:54, 1 user, load average: 0.01, 0.02, 0.00 Tasks: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie Cpu(s): 1.0%us, 0.7%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1922248k total, 1846332k used, 75916k free, 78968k buffers Swap: 0k total, 0k used, 0k free, 330828k cached
各项的解析:
11:22:25 系统时间 up 51 days ,20:54 运行了这么久 1 user一个用户当前登陆 load aberage 系统负载 第二行 Task 89 total总进程数 1 running正在运行的进程数, 88 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 0个僵尸进程数 第三行 Cpu :用户空间占用百分比,系统空间占用百分比, ni :用户空间内改变过优先级的进程占用百分比 id:空闲百分比 wa 等待输入输出百分比 第四行 内存总容量 内存已使用总量 内存空余容量 用作内核缓存内存量 第五行 交换分区总量 交换分区已使用总量 交换分区空余总量 缓冲交换分区总量
top里面的交互命令:
h :显示帮助命令
k 可以通过PID进行进程的终止
l :显示与不显示平均负载信息和系统启动时间信息 第1行
m 显示与不显示内存信息 第5 6 行
t 显示与不显示进程信息和cpu信息 第3 4 行
c 显示与不显示命令的完整名称
M 根据常驻内存大小进行排序
P 根据CPU使用大小啊进行排序
T 根据时间进行排序
1 查看cpu每个核的详情
按b开启高亮显示当前正在运行进程, 再按x 开启高亮模式:通过shift +<>进行按每列进行排序
VIRT:vertual memory usage 虚拟内存
RES:resident memory usage 常驻内存
SHR:share menory 共享内存
PR:进程的调度优先级
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
free:
显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
简单选项: -s<间隔秒数>:持续观察内存使用状况; -h 人性化显示 total = used + free A buffer is something that has yet to be “written” to disk. 写缓存 A cache is something that has been “read” from the disk and stored for later use 读缓存 对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,
当应用程序需在用到内存的时候,buffer/cached会很快地被回收。 所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.
vmstat
最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况。相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率。
vmstat 采样时间间隔秒,采样的次数
表示 每个5秒采样一次,共采样5次
procs:进程相关 r :表示运行或者等待CPU时间片的进程数 b:等待资源数,包括I/O,内存等 memory 内存相关 swpd 虚拟内存,表示已经使用的大小 free 空闲内存 buff 写缓存 cache 读缓存 swap :swap空间 si swap空间写入内存的数据量 so 从内存写入swap空间的数据量 io: 一块1024bytes bi 每秒读取的数据块 bo 每秒写入的块数 system: in 每秒CPU中断次数 cs 每秒上下文切换数,例如我们调用系统函数 cpu 百分比单位 us 用户进程执行时间 sy 系统进程执行时间 id 空闲时间 wa 等待IO时间,wa的值高时,说明IO等待比较严重,这可能由于磁盘大量做随机访问造成的,也有可能是磁盘出现瓶颈 st 一般不用管
额外的参数
-d:显示磁盘相关统计信息。 -p:显示指定磁盘分区统计信息 -s:显示内存相关统计信息及多种系统活动数量。
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lsof 查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件
-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip ) -p<进程号>:列出指定进程号所打开的文件; -c<进程名>:列出指定进程名字所打开的文件; -u:列出UID号进程详情;
查看水正在使用某文件
lsof -i @192.168.25.133
lsof /var/log/messages
lsof -i tcp
lsof -u ^root #除了root以外的用户打开的文件信息
lsof -p 2601
各项的意义:
command :进程的名称 pid :进程ID PPid :父进程的ID User:进程的所属者 FD :文件描述符,主要给应用通过其来识别该文件 包括如下: cwd 应用程序的当前工作目录 txt 程序代码 lnn 库 er mem 内存映射文件 rtd root directory 0:表示标准输出 1:表示标准输入 2:表示标准错误
TYPE:文件类型
DIR 目录
CHR 字符类型
BLK 块设备
UNIX unix域套接字
FIFO 先进先出队列
IPV4 网际协议套接字
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称