Linux性能调优第一步(性能分析)

本文介绍如何通过查看CPU、内存及硬盘使用情况来评估Linux系统的性能。包括如何获取CPU详细信息,如逻辑CPU数量、核心数量;如何监测内存使用,区分已用与可用内存;以及如何检查磁盘空间和I/O性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

影响性能的因素
1.CPU(cpu的速度与性能很大一部分决定了系统整体的性能,是否使用SMP)
2.内存(物理内存不够时会使用交换内存,使用swap会带来磁盘I0和cpu的开销)
3.硬盘(存储系统)

所以本篇文章为linux性能分析的起步,分为1.查看cpu详细情况,2.查看内存使用情况,3.查看硬盘使用情况

1.查看cpu详细情况
1.1显示物理cpu个数的命令:
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

4
1.2显示每个物理cpu中的core的个数(即核数)
cat /proc/cpuinfo | grep "cpu cores" | uniq

cpu cores   : 1
1.3显示逻辑cpu的个数
cat /proc/cpuinfo | grep "processor" | wc -l

4

总结 物理cpu个数 * 核数 = 逻辑cpu个数

如果不等,表示cpu支持超线程技术,配置服务器应以服务器的逻辑cpu个数为标准
2.查看内存使用情况

1.1 查看内容使用情况

free -m
total       used       free     shared    buffers     cached
Mem:                3829        3582        246          0        287       2275
-/+ buffers/cache:              1020       2809
Swap:                 0          0          0

total 内存总数
used 已使用的内存
free 空闲的内容
shared 多个进程共享的内存总额
buffers buffer cache和cached page cache 磁盘缓存的大小

(*)那个 -/+ buffers/cache可分为已用内存数和可用内存数:
已用内存数 = used - buffers - cached 3582MB - 287MB - 2275MB = 1020MB

可用内存数 = free + buffers + cached 246MB+ 287MB + 2275MB = 2809MB

(*)Linux服务器上看内存是否够用的标准: 查看swap(交换空间)用了多少,如果多的话,可考虑添加物理内存

3.查看硬盘使用情况:
1.1查看磁盘及分区信息
fdisk -l
Disk /dev/xvdb: 161.1 GB, 161061273600 bytes
    255 heads, 63 sectors/track, 19581 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x674d8b19

    Device      Boot      Start         End      Blocks     Id  System
    /dev/xvdb1               1          19581   157284351   83  Linux

/dev/xvda 此设备的大小为161.1 GB,

255 heads 255磁头数

63 sectors/track 63个扇区

19581 cylinders 19581个柱面

Sector size (logical/physical): 512 bytes / 512 bytes 表示
一个扇区的大小是512字节

I/O size (minimum/optimal): 512 bytes / 512 bytes 表示一个I/O的大小是512字节

Disk identifier 磁盘标识符

其实可从上面得到的信息是 /dev/xvdb1磁盘大小为161.1GB

1.2检查文件系统的磁盘空间占用情况
df -h

Filesystem      Size(总大小)  Used(已用)         Avail(可用)   Use%(已用%)       Mounted on(挂载点)
    /dev/xvda1       20G            11G         8.1G        57%             /
    tmpfs           1.9G            0           1.9G        0%              /dev/shm
    /dev/xvdb1      148G            131G        10G         93%             /mnt/xvdb
1.3查看磁盘的I/O性能
iostat  -d -x -k 110

Linux 2.6.32-431.23.3.el6.x86_64 (centos6.5)    2016年11月15日     _x86_64_(64位)   (2 CPU) cpu核数

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    xvda              0.00     1.41    0.64    2.47    10.09    15.50    16.49     0.05   17.21   1.87   0.58
    xvdb              0.00     2.96    0.83    0.67    22.86    14.54    49.70     0.09   58.64   3.54   0.53

Linux 2.6.32-431.23.3.el6.x86_64 ((******))     2016年11月15日     _x86_64_    (4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    xvda              0.00     0.05    0.05    1.23     0.93     5.14     9.45     0.01    4.87   0.88   0.11

rrqm/s 每秒进行merge的读操作数目

wrqm/s 每秒进行merge的写操作数目

r/s 每秒完成的读I/O设备的次数

w/s 每秒完成的写I/O设备的次数

rkB/s 每秒读千字节数

wkB/s 每秒写千字节数

avgrq-sz 平均每次设备I/O操作的数据大小(即扇区)

avgqu-sz 平均I/O队列的长度

await 平均每次设备I/O操作的等待时间(微秒)

svctm 平均每次设备I/O操作的服务时间(微秒)

%util 一秒中有百分之多少用于I/O操作,或者说一秒中有多少时间I/O队列是非空闲的(微秒)

* await(I/O等待时间)的大小取决于服务时间(svctm),以及I/O队列的长度和I/O请求发出的模式

await 响应时间应该低于5ms,如果大于5ms就表示磁盘I/O压力很大。考虑更换响应更快的磁盘(如ssd固态磁盘)、调整内核elevator的算法、优化应用或者升级CPU

1.4查看某目录的大小
du -sh 目录名
du -sh company/

74M company/
1.5列出当前位置下所占用空间最多的前10个文件,由大到小排序
du -cks * |sort -rn | head -n 10

附录:

时间常用的:s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒),其中:1s=1000ms,1 ms=1000μs,1μs=1000ns

字节与字符常用:1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210。
1B(byte,字节)= 8 bit(见下文);
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;
1TB(Terabyte,万亿字节,太字节)=1024GB= 2^40 B;
把B称为字节、b称为字位、KB称为千字节、MB称为兆字节、GB称为吉字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值