本文介绍: 例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。如果svctm的值与await很接近,表示几乎没有I/O等待磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长系统运行应用程序变慢

目录

TCP 连接优化

UDP 连接优化

系统初始化参数优化


TCP 连接优化

路由转发模式 net.ipv4.ip_forward = 1

net.ipv4.tcp_fin_timeout = 30 如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。

net.ipv4.tcp_max_syn_backlog = 10240 表示SYN队列长度默认为1024,加大队列长度为10240,可以容纳更多等待连接网络连接数。

net.ipv4.tcp_keepalive_time = 1200 表示keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟

net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接端口范围。缺省情况下很小:32768到61000,改为1024到65000。

UDP 连接优化

net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 修改UDP 缓冲区大小

系统初始化参数优化

1) 关闭防火墙selinux
2) 配置合理yum源
3) 关闭需要系统服务
4) 内核优化echo "ulimit -SHn 102400" >> /etc/rc.local
cat &gt;&gt; /etc/security/limits.conf << EOF
    *           soft   nofile       102400
    *           hard   nofile       102400
    *           soft   nproc        102400
    *           hard   nproc        102400
EOF
系统磁盘优化
1)  磁盘分区方案
分区类型     分区的实际大小
/           1G-2G
/boot       32M-100M (启动分区,最多只要100M左右)
/opt        100M-1G (附加应用程序)
/tmp        40M-1000M
/home       2G-10G (如果需要单独分区。)
/usr        3G-10G 最少要500M左右,一般宽松的服务器要分到4-6G)
/usr/local  3G-15G (自已安装程序安装在此)
/var        &gt;2G–硬盘余下全部空间 ( 最少300M-500M,一般2-3G,做服务器的话把上面余下的空间都分给它)
swap    物理内存的两倍(参考值)
2) 物理磁盘优化
 - raid 阵列选择
 - lvm逻辑选择
 - 磁盘类型选择
   - ext2:linux下标文件系统,无日志记录inode功能
   - ext3:在ext2基础上增加了日志记录功能inode),仅支持32000个目录
   - ext4: ext3的后续版本linux2.6.28内核开始支持无限目录支持快速fsck
   - xfs高性能文件系统linux3.10内核开始默认支持操作频繁:ext4 
写操作频繁:xfs
​
3) xfs 优化
格式化时的参数mkfs.xfs -d agcount=256 -l size=128m,lazy-count=1,version=2 /dev/diska1
挂载时的参数:
defaults,noatime,nodiratime,nobarrier,discard,allocsize=256m,logbufs=8,attr2,logbsize=256k
​
4) swap 分区优化
/proc/sys/vm/swappiness
当系统非常需要使用内存时,内核会把匿名内存(Anonymous memory)和System V的共享内存shared memory交换磁盘上去,而真正的文件需要交换交换内存上去,而是直接写会到磁盘文件系统上(清掉page cache)。
调低/proc/sys/vm/swappiness时,核心倾向于不交换,主要用于更快的响应速度。如:apachemysql
调高/proc/sys/vm/swappiness时,核心倾向于使用交换内存,主要用于繁忙的吞吐量。如:ftp

iostat

参数说明rrqm/s:每秒合并放入驱动请求队列的读请求数(当系统调用需要读取数据时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block数据,FS会将这个请求合并Merge)。
wrqm/s:每秒合并放入驱动请求队列的写请求数。
rsec/s:每秒发给磁盘设备的读请求数。
wsec/:每秒发给磁盘设备的写请求数。
rKB/s:每秒从磁盘设备读取的KB数。
wKB/s:每秒向磁盘设备写入的KB数。
avgrq-sz 平均每次请求大小,单位为扇区(512B)。
avgqu-sz 在驱动请求队列和在设备中活跃的平均请求数。
await平均I/O响应时间,包括在驱动请求队列等待和设备的I/O响应时间(ms)。一般地系统I/O响应时间应该低于5ms,如果大于10ms比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题svctm:磁盘设备的I/O平均响应时间(ms)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长系统运行应用程序变慢。
%util: 设备忙处理I/O请求的百分比(使用率)。在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
      既然avgrq-sz是合并之后的数字,小尺寸(16个扇区或者更小)可以视为无法合并的实际I/O负载的迹象。大尺寸可能是大I/O,或者是合并的连续负载输出性能里最重要的指标await。如果应用程序文件系统使用了降低写延时方法,w_await可能不那么重要,而更应该关注r_await。
      对于资源使用和容量规划,%util仍然很重要,不过记住这只是繁忙度的一个度量(非空闲时间),对于后面有多块磁盘支持虚拟设备意义不大。可以通过施加负载更好地了解这些设备:IOPS(r/s + w/s)以及吞吐量rkB/s + wkB/s)。

vmstat:

1) procs:
- r列表示运行和等待cpu时间片的进程数,这个如果长期大于系统cpu个数,说明cpu不足,需要增加cpu
- b列表示在等待资源进程数,比如等待I/O,或者内存交换等
​
2) procs标准:    r 不超过cpu进程数
3) swap标准:    si,so长期不为0,说明内存不足,需要加内存
4) io标准:    bi+bo超过1000,而且wa值较高,说明磁盘IO有问题,应提高磁盘读写性能
5) system标准:    
- us长期超过50%,用户进程消耗cpu,需要考虑优化程序算法
- sy长期超过50%,内核消耗的cpu资源很多
- us+sy长期超过80%,说明可能cpu资源部足
- id cpu空闲百分比
- wa 参考值20%,如果超过20%,说明io等待严重
cpu重点:r    cs  us  sy id  wa值的大小

原文地址:https://blog.csdn.net/2301_79538834/article/details/134742147

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27858.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注