当前位置:网站首页>开源一夏 |如何优化线上服务器
开源一夏 |如何优化线上服务器
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
边栏推荐
猜你喜欢
5 款漏洞扫描工具:实用、强力、全面(含开源)
敏捷交付的工程效能治理
Engineering Effectiveness Governance for Agile Delivery
如何使用 Jmeter获取登录token并设置为全局变量?
【HiFlow】经常忘记签到怎么办?使用腾讯云场景连接器每天提醒你。
数学之美 第六章——信息的度量和作用
华为设备配置VRRP与BFD联动实现快速切换
云服务器如何安全使用本地的AD/LDAP?
Edge box + time series database, technology selection behind Midea's digital platform iBuilding
svg胶囊药样式切换按钮
随机推荐
xss.haozi练习通关详解
直播平台怎么搭建,针对输入框的各种组件
基于data.table的tidyverse?
友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
李沐动手学深度学习V2-BERT微调和代码实现
调用EasyCVR接口时视频流请求出现404,并报错SSL Error,是什么原因?
leetcode 剑指 Offer 15. 二进制中1的个数
leetcode 2119. 反转两次的数字
Lecture topics and guest blockbuster, TDengine developers conference to promote data technology "broken"
chartjs自定义柱状图插件
Why BI software can't handle correlation analysis
leetcode 326. 3 的幂
leetcode 326. Powers of 3
Leetcode 16. Numerical integral power (power + fast recursive/iteration)
云服务器如何安全使用本地的AD/LDAP?
【HiFlow】经常忘记签到怎么办?使用腾讯云场景连接器每天提醒你。
收藏-即时通讯(IM)开源项目OpenIM-功能手册
Kubernetes资源编排系列之三: Kustomize篇 作者 艄公(杨京华) 雪尧(郭耀星)
8.2模拟赛总结
PyCharm函数自动添加注释无参数问题