当前位置:网站首页>开源一夏 |如何优化线上服务器
开源一夏 |如何优化线上服务器
2022-08-03 20:43:00 【InfoQ】
我相信很多程序员都会有这种“线上服务器老是卡”等烦恼,那我今天给大家讲讲该如何优化线上服务器老是卡的问题。
服务器配置选择
服务器负载分析
CPU使用率
yum install htop -y
htop
htop
htop
内存使用率
MEM%
磁盘I/O
iostat
yum install sysstat -y
iostat
# 查看磁盘总体读写情况, 1代表每1秒读取一次数据
iostat -x 1
iostat
%idle
%util
%idle
:表示CPU除去等待磁盘I/O以外的空闲时间百分比,这个指标应该要保证在70%以上
%util
:该设备用于I/O操作的时间百分比,这个指标需要保证在70%以下,当到达100%时表示已经满负载。为了降低磁盘负载,可以采用性能更高的磁盘(OSD,PCIE)或者降低磁盘的操作频率(异步写、合并写)
平均负载
htop
Load average
网络使用情况
nload
yum install nload -y
nload
nload
nload
- Curr:当前网速
- Avg:平均网速
- Min:最小网速
- Max:最大网速
- Ttl:总流量
服务器内核参数调优
单个进程最大打开文件数
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
*
TCP相关设置
/etc/sysctl.conf
# 为防止洪水攻击,高并发系统需要将此项关闭
net.ipv4.tcp_syncookies = 0
# 开启TCP连接重用,允许处理TIME-WAIT状态的连接重新用于新的TCP连接
net.ipv4.tcp_tw_reuse = 1
# 开启快速回收TCP连接中处于TIME-WAIT状态的连接
net.ipv4.tcp_tw_recycle = 1
#修改超时时间( s ),该值表示如果连接由本端关闭,则连接处于 FIN-WAIT-2状态的时间为
net.ipv4.tcp_fin_timeout = 30
#当 keepalive(长连接)启用的时候,TCP发送 keepalive 消息(探测包)的时间间隔( s ),默认为2个小时
net.ipv4.tcp_keepalive_time =1200
#服务器对外连接的端口范围,影响该服务器与其他服务器的连接数
net.ipv4.ip_local_port_range =102465535
#SYN队列的长度,可以容纳更多等待连接的网络连接数,默认为1024
net.ipv4.tcp_max_syn_backlog = 65535
#保持 TIME_WAIT 状态连接的最大数量,如果超过此值,TIME_WAIT 将立刻被清除并打印警告信息,默认为180000
net.ipv4.tcp_max_tw_buckets =5000
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog =65535
# TCP最大连接数
net.core.somaxconn = 65535
#预留用于接收缓冲的内存默认值(字节)
net.core.rmem_default = 8388608
#预留用于接收缓冲的内存最大值(字节)
net.core.rmem_max = 16777216
#预留用于发送缓冲的内存默认值(字节)
net.core.wmem_default = 8388608
#预留用于发送缓冲的内存最大值(字节)
net.core.wmem_maX = 16777216
#避免时间戳异常
net.ipv4.tcp_timestamps = 0
#系统中最多有多少个 TCP 套接字不被关联到任何一个用户文件句柄上,如果超过这个数字,连接将即刻被复位并打印警告信息,这个限制仅仅是为了防止简单的DoS 攻击
net.ipv4.tcp_max_orphans =3276800
边栏推荐
猜你喜欢
不专业面试官的经验总结
From September 1st, my country has granted zero-tariff treatment to 98% of tax items from 16 countries including Togo
华为设备配置VRRP与BFD联动实现快速切换
error: C1083: 无法打开包括文件: “QString”: No such error: ‘QDir‘ file not found
RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
leetcode 231. Powers of 2
简单又有效的基本折线图制作方法
TweenMax.js向日葵表情变化
Markdown语法
AWTK开发编译环境踩坑记录1(编译提示powershell.exe出错)
随机推荐
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
Cesium 修改鼠标样式
3种圆形按钮悬浮和点击事件
abs()、fabs() 和 labs() 的区别
华为设备配置VRRP负载分担
敏捷交付的工程效能治理
Leetcode 125. Verify palindrome string
转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G
李沐动手学深度学习V2-自然语言推断与数据集SNLI和代码实现
ES6 deconstruction assignment - array object deconstruction and deconstruction
直播平台怎么搭建,针对输入框的各种组件
leetcode 461. 汉明距离
Leetcode sword refers to Offer 15. 1 in the binary number
if _name_ == “__main__“:NameError: name ‘_name_‘ is not defined
抖音web逆向教程
直播源码开发,各种常见的广告形式
Go语言类型与接口的关系
tkwebview2创作心得
glusterfs 搭建使用
Lecture topics and guest blockbuster, TDengine developers conference to promote data technology "broken"