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下性能压测之系统参数调优相关推荐

  1. 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选

    一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...

  2. Java性能压测工具及其调优

    Java性能压测工具及其调优 JMeter工具 使用 JVisualVM使用 使用 简介 在日常的开发中,Java的性能显得尤为重要,一个程序的好坏主要就是性能来决定的. JMeter工具 JMete ...

  3. tcp压测工具_【解决方案】性能压测及分析调优实践

    [关键导读]结合一次重保活动的性能压测需求,详解了整体的性能测试策略及性能分析思路,并在实施过程中有效利用了网易易测的NPT性能测试平台一站式完成了压测场景设计.执行.业务指标监控.性能指标分析等活动 ...

  4. mysql 性能拐点_性能压测及分析调优实践

    [关键导读] 文中结合一次重保活动的性能压测需求,详解了整体的性能测试策略及性能分析思路,并在实施过程中有效利用了NPT性能测试平台完成了压测场景设计.执行.业务指标监控.性能指标分析,结合监控找出了 ...

  5. Linux下性能压测工具WRK,性能测试神器 wrk 使用教程

    wrk 是一个类似 ab(apache bench).jmeter 的压力测试工具,底层基于 epoll 和 kqueue 实现,能充分利用 cpu 资源,降低测试工具本身性能开销对测试结果准确性的影 ...

  6. Linux下的压测工具 hey

    压测工具其实挺多的,比较出名的比如:loadrunner,jmeter等,今天简单记录下另外的压测工具hey的使用. 简单使用 ./hey -n 10 -c 1 -m POST "地址&qu ...

  7. 技能篇:linux服务性能问题排查及jvm调优思路

    只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求.最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的.如果你是负责中间件或 ...

  8. linux下mq qm.ini路径,MQ调优Linux参数检查

    一.调优 修改队里管理器目录下的qm.ini文件,如/var/mqm/qmgrs/QM_ICBC_FINC_01/qm.ini 调整MQ参数如下: 修改 LogBufferPages 的值为4096 ...

  9. Linux平台下可视化压测软件visual-wrk

    2019独角兽企业重金招聘Python工程师标准>>> visual-wrk是一款基于wrk开源项目二次开发的Linux下可视化压测软件. git地址(https://github. ...

最新文章

  1. error C1004 发现意外的文件尾
  2. Java基础-我所理解的泛型
  3. 20172304 《程序设计与数据结构》第六周学习总结
  4. Python语言学习之数值、小数、空格那些事:python和数值、小数、空格的使用方法之详细攻略
  5. 实时OLAP分析利器Druid介绍
  6. 美女被偷之后.....
  7. 深度学习基础 | 超详细逐步图解 Transformer
  8. python爬取微博恶评_Python爬取新浪微博评论数据,了解一下?
  9. android aar项目_一文了解Android游戏SDK开发
  10. python解包裹_python-之基本语法
  11. Win10提示“无法使用内置管理员账户打开计算器”解决方案
  12. 6-7 BMI计算(类与对象) (10分)
  13. 《游戏学习》java代码实现《愤怒的小鸟》实战源码
  14. @Qualifier 标签
  15. exFAT和NTFS哪个好
  16. 2020年国防科大CS预推免
  17. 笔记本拆卸-Acer-Aspire-4750G
  18. keil中使用软件debug功能查看printf输出结果
  19. Linux设置启动图标
  20. 新人如何制作机器人?机器人制作材料及做法揭秘

热门文章

  1. SQL读书笔记_With Clause的注意事项
  2. CustomValidator的使用方法
  3. spark shuffle的写操作之准备工作
  4. Docker存储驱动之OverlayFS简介
  5. 【移动开发】安卓Lab2(02)
  6. 在C#中怎么调用Resources文件中的图片
  7. 病毒与木马大多作成 动态库形式的原因
  8. Android开发系列(二十八):使用SubMenu创建选项菜单
  9. android中string.xml文件的使用
  10. static class 静态类(Java)转