查看cpu相关信息:cat /proc/cpuinfo
- processor:逻辑cpu序号从0开始
- physical id:物理cpu序号
- cpu cores:当前physical cpu的核数,根据physical id可判断
- cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
#物理cpu个数
- cat /proc/cpuinfo | grep "processor" | wc -l
#逻辑cpu个数(等于所有物理cpu的所有核数相加)
查看内存使用情况:free
- buffers:buffer cache针对磁盘块读写的磁盘缓存大小
- cached:cached cache针对文件inode读写的磁盘缓存大小
- -buffers/cache:真正被用于程序占用的内存数(used-buffers-cached)
- +buffers/cache:可用的内存数(free+buffers+cache)
#即被挪用的内存数看+buffers/cache就ok了
一般只要swap交换空间没被使用,就表示服务器内存是够用的
查看硬盘使用情况:
查看磁盘和分区信息:fdisk -l
查看文件系统信息:df
- df [-m 以MB的方式显示大小] [-k 以KB的方式显示大小] [-h 以GB/MB/KB的方式] [-i 以inode数量显示] [-a 列出所有文件系统包括/proc等特殊系统] [-T 显示文件系统类型] [-H 以1024=1000的方式显示]
- df读取的是superblock内的数据
查看某目录大小:du
- du [-s 仅列出总量] [-S 不包括子目录的统计] [-a 列出所有统计,包括文件] [-c 最后加上总计] [-h] [-k] [-m]
- 应用:du -s * | sort -rn | head -n 10 #列出当前目录下最大的10个目录或文件
[[email protected] ~]# du -s * | sort -rn | head
38928 httpd-2.4.12
13448 apr-1.5.2
12580 apr-util-1.5.4
4940 httpd-2.4.12.tar.bz2
1008 apr-1.5.2.tar.gz
856 apr-util-1.5.4.tar.gz
24 install.log
8 install.log.syslog
4 index.html.1
4 index.html
查看硬盘的I/O性能:iostat -x -k 1 3 #每秒一次共三次
注意以下两点
- %util:一秒中I/O操作时间的百分比,即一秒内有多少时间I/O队列是非空的,若接近%100表示I/O请求过多,超负荷,磁盘存在瓶颈
- await:平均每次设备I/O操作的等待时间,一般应低于5ms(参考来自于书本),若大于5ms表示磁盘I/O压力大,应升级硬件或调优
查看系统平均负载
当服务器响应变慢时,可能是负载出现问题,应查看系统平均负载,即cpu平均负载,看看是否有大量的进程在排队,特点时间内运行队列的平均进程数可以反映系统繁忙程度
uptime
- load average:过去的1分钟 5分钟 15分钟内进程队列中的平均进程数量,这三个值一般不能大于系统逻辑cpu数量,偶尔超出倒是没问题
top:第一行的内容就是uptime的内容
- 还可查看进程优先级,cpu使用率,内存使用率等
查看系统整体性能状态
vmstat:是一个很全面的系统性能分析工具,可以观察系统的进程状态、内存使用情况、虚拟内存使用情况、磁盘I/O、中断、上下文切换、cpu使用情况等信息。还可以在进行服务器性能测试时候作为监控标准的工具
- procs
r:等待运行的进程数,多少个进程分到了cpu,一般不超过cpu个数是正常的值
b:处于非中断睡眠状态的进程数,即在等待资源分配的进程数,阻塞状态
- memory
swpd:虚拟内存使用情况(KB)
free:空闲的内存(KB)
buff:用作缓存的内存数,缓存的是文件目录基本内容,在磁盘中的位置、权限等(KB)
cache:用作文件缓存的内存数,对打开的文件做缓存,提高执行效率和使用性能(KB)
- swap
si:从磁盘交换到内存的交换页数量,即每秒使用的虚拟内存数量(KB/s)
so:从内存交换到磁盘的交换页数量(KB/s)
- io
bi:发送到块设备一般即磁盘的块数(块/s)
bo:从块设备接收到的块数(块/s)
- system
in:每秒中断次数,包括时钟中断
cs:每秒的上下文切换次数
- cpu(显示cpu的总使用百分比)
us:用户cpu使用时间
sy:系统cpu使用时间,如进行I/O操作等
id:空闲时间
wa:等待I/O的cpu时间,一般为0
- 一般us+sy+id=100,因为我的测试虚拟机没有运行任务,所以us和sy都是0
- 一般us+sy<70表示系统性能较好,若大于85则可能需要对系统进行检查