简单描述了如何从CPU、内存、硬盘性能、负载方面去了解自己工作的服务器性能。这个很重要,必须了解机器的方方面面才能提高在自己运维工作效率。
一、查看linux服务器cpu详情
查看物理cpu个数:
[[email protected] ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 1
查看每个物理cpu中的core个数(核数):
[[email protected] ~]# cat /proc/cpuinfo | grep "cpu cores" |uniq cpu cores : 1
查看逻辑CPU个数:
[[email protected] ~]# cat /proc/cpuinfo | grep "processor" | wc -l 1
二、查看服务器内存详情
[[email protected] ~]# free -m total used free shared buffers cached Mem: 988 612 375 26 112 264 -/+ buffers/cache: 235 753 Swap: 4015 0 4015
total:内存总数
used: 使用的内存
free: 空闲内存
shared 多个进程共享的内存总额
– buffers/cache: 已用内存数
+ buffers/cache: 可用内存数
可用内存 = free + buffers + cached
由此可见:可以内存 = 375 + 112 + 264
三、查看硬盘使用详情
1、查看硬盘分区情况:
[[email protected] ~]# fdisk -l Disk /dev/hda: 21.4 GB, 21474836480 bytes 224 heads, 56 sectors/track, 3343 cylinders Units = cylinders of 12544 * 512 = 6422528 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 3343 20963801 83 Linux Partition 1 does not end on cylinder boundary. Disk /dev/xvdb: 10.7 GB, 10737418240 bytes 224 heads, 56 sectors/track, 1671 cylinders Units = cylinders of 12544 * 512 = 6422528 bytes Device Boot Start End Blocks Id System /dev/xvdb1 1 147 921956 83 Linux /dev/xvdb2 148 1671 9558528 83 Linux
可以看出,这个云主机,有2个硬盘 /dev/hda: 21.4 GB /dev/xvdb: 10.7 GB
2、查看文件系统的磁盘空间使用情况:
[[email protected] ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/hda1 ext3 21G 3.6G 17G 19% / tmpfs tmpfs 261M 779k 260M 1% /dev/shm /dev/xvdb2 ext3 9.7G 156M 9.0G 2% /datasql
df -TH 命令一目了然可以得知硬盘分区以及文件系统挂载的目录。
3、查看硬盘的IO信息:
1、 通过top命令第三行可以看到 1.2%wa
[[email protected] ~]# top | sed -n ‘3p‘ Cpu(s): 1.1%us, 0.1%sy, 0.0%ni, 98.5%id, 1.2%wa, 0.0%hi, 0.1%si, 0.0%st
2、通过iostat命令
[[email protected] ~]# iostat -x 1 10 Linux 2.6.18-371.12.1.el5 (ctyun.oooooxxxxx.com) 11/06/2014 avg-cpu: %user %nice %system %iowait %steal %idle 1.07 0.00 0.24 0.20 0.00 98.49 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util hda 0.01 1.96 0.07 1.33 1.64 26.31 19.96 0.01 9.94 1.95 0.27 hda1 0.01 1.96 0.07 1.33 1.64 26.31 19.96 0.01 9.94 1.95 0.27 xvdb 0.00 0.00 0.00 0.00 0.01 0.01 47.26 0.00 24.54 8.18 0.00 xvdb1 0.00 0.00 0.00 0.00 0.01 0.01 48.99 0.00 25.37 8.05 0.00 xvdb2 0.00 0.00 0.00 0.00 0.00 0.00 16.14 0.00 14.25 13.38 0.00
rrqm/s 每秒进行merge的读操作
wrqm/s 每秒进行merge的写操作
r/s 每秒完成的读I/O的设备次数
w/s 每秒完成的写I/O的设备次数
rsec/s 每秒读扇区数
wsec/s 每秒写扇区数
avgrq-sz 平均每次设备IO操作的数据大小
avgqu-sz 平均I/O队列的长度
await 平均每次设备I/O操作的等待时间
svctm 平均每次设备I/O操作的服务时间
%util 一秒钟有百分之多少的时间用于I/O操作,或者说一秒钟有多少时间I/O队列是非空的
实际工作中只需要关注
%util 接近100%,说明产生的I/O请求太多,I/O系统已经满负载,该磁盘可能存在瓶颈。
%idle 如果小于70% I/O的压力就比较大了,说明进程中有较多的wait。
3、查看Linux 系统中某目录大小
[[email protected] ~]# du -sh /usr/local/src/ 676M /usr/local/src/
找出某个目录中最大的文件
[[email protected] src]# du -ckhs * | sort -rn | head -n 10 808K nginx-1.7.7.tar.gz 804K nginx-1.7.5.tar.gz 676M total 333M php-5.6.0 119M Python-2.7.8 84K ngx_cache_purge-2.1 75M gperftools-2.2.1 64M Python-2.7.8.tar 22M nginx-1.7.7 22M nginx-1.7.5
四、查看linux系统的平均负载
1、平均负载
[[email protected] ~]# uptime 16:59:05 up 1 day, 22:08, 1 user, load average: 0.10, 0.04, 0.01
2、查看有哪些用户占用那些终端
[[email protected] ~]# w 16:59:54 up 1 day, 22:09, 1 user, load average: 0.04, 0.03, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root pts/0 222.209.140.148 15:39 0.00s 0.15s 0.00s w
3、使用top命令查看第一行
[[email protected] ~]# top | sed -n ‘1p‘ top - 17:00:52 up 1 day, 22:09, 1 user, load average: 0.01, 0.02, 0.00
参数:load average: 0.04, 0.03, 0.00
三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字当然是越小越好。
“有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不应该高于处理器核心的总数量
五、使用vmstat命令来查看Linux系统的整体性能
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
六、查看系统内核版本
[[email protected] ~]# uname -a Linux ctyun.xxxxxxxxx.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
七、如何查看系统是32位还是64位
1、看根目录下是否有lib64
ls -1F / | grep 64
2、查看/sbin/init 文件类型
[[email protected] ~]# file /sbin/init /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
3、查看系统版本号
[[email protected] ~]# rpm -q centos-release centos-release-6-6.el6.centos.12.2.x86_64
八、查看系统内核已经装载的模块
[[email protected] src]# lsmod | grep ext ext3 170065 2 jbd 95409 1 ext3 [[email protected] src]#
九、查看PCI插槽上的设备信息(这个是云主机的显卡)
[[email protected] src]# lspci | grep VGA 00:02.0 VGA compatible controller: Cirrus Logic GD 544