本文介绍: 例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长系统上运行的应用程序将变慢。
TCP 连接优化
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 >> /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 >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时,核心倾向于不交换,主要用于更快的响应速度。如:apache、mysql 调高/proc/sys/vm/swappiness时,核心倾向于使用交换内存,主要用于繁忙的吞吐量。如:ftp
参数说明: 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)。
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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。