Linux下性能压测之系统参数调优
1. 前言
在做服务端压测的时候,经常会遇到一些由于Linux系统限制导致压力上不去的情况,这里从Linux系统参数上做一些调优,减少此类因素的干扰。
2. 配置
2.1 Linux系统配置
执行:sudo vi /etc/sysctl.conf,添加以下内容:
net.ipv4.tcp_syncookies = 0
fs.file-max = 12553500
fs.nr_open = 12453500
kernel.shmall= 1048576
kernel.shmmax = 1887436
kernel.msgmax = 65536
kernel.sysrq = 0
kernel.pid_max= 65536
net.core.netdev_max_backlog = 2000000
net.core.rmem_default = 699040
net.core.rmem_max = 50331648
net.core.wmem_default = 131072
net.core.wmem_max = 33554432
net.core.somaxconn = 65535
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_mem = 1048576 1572864 2097152
net.ipv4.tcp_rmem = 4096 4194304 8388608
net.ipv4.tcp_wmem = 4096 4194304 8388608
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_window_scaling = 1
vm.swappiness = 0#TCP connection recovery
net.ipv4.tcp_max_tw_buckets = 6000000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.route.max_size = 5242880
net.ipv4.ip_forward = 1
net.ipv4.tcp_timestamps = 1
#开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用#TCP connection manager
net.ipv4.tcp_max_syn_backlog = 655360
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 6#TCP keepalive
net.ipv4.ip_local_port_range = 1000 65534
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
fs.inotify.max_user_watches=524288
保存后执行:sysctl -p 生效。
2.2 文件描述符限制
2.2.1 修改fileno的配置
执行:sudo vi /etc/security/limits.conf , 文末添加:
- nofile 1000000
2.2.2 修改supervisor服务配置文件(如果是supervisor启动的程序,则可以修改此处)
执行:vi /usr/lib/systemd/system/supervisord.service,添加如下:
[Service]
#添加如下三行
LimitCORE=infinity
LimitNOFILE=1000000
LimitNPROC=1000000
修改完上述supervisord.service后,执行如下命令生效
sudo systemctl daemon-reload
sudo systemctl restart supervisord.service
2.2.3 验证open files是否修改成功
1. 全局查看
执行:ulimit -a,查看open files选项
2. 查看supervisor启动服务的open files数
#1. 先查询supervisor的pid
ps aux |grep supervisor
#2. 假如是22296,查看进程限制
cat /proc/22296/limits
#3. 看到有下面一行就ok了
Max open files 1000000 1000000 files
2.3 /etc/security/limits.conf配置
limits.conf是Linux资源限制配置文件,为了性能测试,我们可以将其调大
* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 650000
进行了如上配置之后,在我们使用Jmeter等压测工具进行压测的时候,后端服务能享受到Linux软件层面的最大性能。
Linux下性能压测之系统参数调优相关推荐
- 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选
一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...
- Java性能压测工具及其调优
Java性能压测工具及其调优 JMeter工具 使用 JVisualVM使用 使用 简介 在日常的开发中,Java的性能显得尤为重要,一个程序的好坏主要就是性能来决定的. JMeter工具 JMete ...
- tcp压测工具_【解决方案】性能压测及分析调优实践
[关键导读]结合一次重保活动的性能压测需求,详解了整体的性能测试策略及性能分析思路,并在实施过程中有效利用了网易易测的NPT性能测试平台一站式完成了压测场景设计.执行.业务指标监控.性能指标分析等活动 ...
- mysql 性能拐点_性能压测及分析调优实践
[关键导读] 文中结合一次重保活动的性能压测需求,详解了整体的性能测试策略及性能分析思路,并在实施过程中有效利用了NPT性能测试平台完成了压测场景设计.执行.业务指标监控.性能指标分析,结合监控找出了 ...
- Linux下性能压测工具WRK,性能测试神器 wrk 使用教程
wrk 是一个类似 ab(apache bench).jmeter 的压力测试工具,底层基于 epoll 和 kqueue 实现,能充分利用 cpu 资源,降低测试工具本身性能开销对测试结果准确性的影 ...
- Linux下的压测工具 hey
压测工具其实挺多的,比较出名的比如:loadrunner,jmeter等,今天简单记录下另外的压测工具hey的使用. 简单使用 ./hey -n 10 -c 1 -m POST "地址&qu ...
- 技能篇:linux服务性能问题排查及jvm调优思路
只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求.最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的.如果你是负责中间件或 ...
- linux下mq qm.ini路径,MQ调优Linux参数检查
一.调优 修改队里管理器目录下的qm.ini文件,如/var/mqm/qmgrs/QM_ICBC_FINC_01/qm.ini 调整MQ参数如下: 修改 LogBufferPages 的值为4096 ...
- Linux平台下可视化压测软件visual-wrk
2019独角兽企业重金招聘Python工程师标准>>> visual-wrk是一款基于wrk开源项目二次开发的Linux下可视化压测软件. git地址(https://github. ...
最新文章
- error C1004 发现意外的文件尾
- Java基础-我所理解的泛型
- 20172304 《程序设计与数据结构》第六周学习总结
- Python语言学习之数值、小数、空格那些事:python和数值、小数、空格的使用方法之详细攻略
- 实时OLAP分析利器Druid介绍
- 美女被偷之后.....
- 深度学习基础 | 超详细逐步图解 Transformer
- python爬取微博恶评_Python爬取新浪微博评论数据,了解一下?
- android aar项目_一文了解Android游戏SDK开发
- python解包裹_python-之基本语法
- Win10提示“无法使用内置管理员账户打开计算器”解决方案
- 6-7 BMI计算(类与对象) (10分)
- 《游戏学习》java代码实现《愤怒的小鸟》实战源码
- @Qualifier 标签
- exFAT和NTFS哪个好
- 2020年国防科大CS预推免
- 笔记本拆卸-Acer-Aspire-4750G
- keil中使用软件debug功能查看printf输出结果
- Linux设置启动图标
- 新人如何制作机器人?机器人制作材料及做法揭秘