ulimit设置

ulimit -n 要调整为100000甚至更大。 命令行下执行 ulimit -n 100000即可修改。如果不能修改,需要设置 /etc/security/limits.conf,加入

* soft nofile 262140

* hard nofile 262140

root soft nofile 262140

root hard nofile 262140

* soft core unlimited

* hard core unlimited

root soft core unlimited

root hard core unlimited

内核设置

net.unix.max_dgram_qlen = 100

swoole使用unix socket dgram来做进程间通信,如果请求量很大,需要调整此参数。系统默认为10,可以设置为100或者更大。

或者增加worker进程的数量,减少单个worker进程分配的请求量。

net.core.wmem_max

修改此参数增加socket缓存区的内存大小

net.ipv4.tcp_mem = 379008 505344 758016

net.ipv4.tcp_wmem = 4096 16384 4194304

net.ipv4.tcp_rmem = 4096 87380 4194304

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_tw_reuse

是否socket reuse,此函数的作用是Server重启时可以快速重新使用监听的端口。如果没有设置此参数,会导致server重启时发生端口未及时释放而启动失败

net.ipv4.tcp_tw_recycle

使用socket快速回收,短连接Server需要开启此参数

消息队列设置

当使用消息队列作为进程间通信方式时,需要调整此内核参数

kernel.msgmnb = 4203520,消息队列的最大字节数

kernel.msgmni = 64,最多允许创建多少个消息队列

kernel.msgmax = 8192,消息队列单条数据最大的长度

FreeBSD/MacOS

sysctl -w net.local.dgram.maxdgram=8192

sysctl -w net.local.dgram.recvspace=200000 修改Unix Socket的buffer区尺寸

开启CoreDump

设置内核参数

kernel.core_pattern = /data/core_files/core-%e-%p-%t

通过ulimit -c命令查看当前coredump文件的限制

ulimit -c

如果为0,需要修改/etc/security/limits.conf,进行limit设置。

开启core-dump后,一旦程序发生异常,会将进程导出到文件。对于调查程序问题有很大的帮助

其他重要配置,以下是兄弟连www.lampbrother.net方法演示:

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_syn_backlog=81920

net.ipv4.tcp_synack_retries=3

net.ipv4.tcp_syn_retries=3

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 300

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.ip_local_port_range = 20000 65000

net.ipv4.tcp_max_tw_buckets = 200000

net.ipv4.route.max_size = 5242880

查看配置是否生效

如:修改net.unix.max_dgram_qlen = 100后,通过

cat /proc/sys/net/unix/max_dgram_qlen

兄弟连Linux培训提示您:如果修改成功,这里就是新设置的值啦。

人打赏

0人 点赞

主帖获得的天涯分:0

举报 |

楼主

|

楼主发言:1次 发图:0张 | 添加到话题 |

linux内核参数的程序,技巧-Linux内核参数调整办法相关推荐

  1. Linux从头开始学--学习笔记9知识点补充-ubuntu,centos;在linux上创建c程序;linux基础命令,shell命令,vi命令,man帮助手册

    这是我从头开始学习Linux的学习笔记,后续还会更新. 记录自己的技术成长,也希望和大家分享交流,欢迎关注~ 本笔记为coursera网站课程<Linux for Developers>的 ...

  2. linux 带ifdef运行程序_如何让linux的一段程序代码进入内核态运行

    展开全部 Linux内核的最初部分代码是用汇编语言写的(文件是boot/bootsect.s).(我的汇编水平有限,暂且不看),636f707962616964757a686964616f313333 ...

  3. linux u盘更新程序,嵌入式linux下插u盘自动更新的设计

    一.内核配置,配置使其支持u盘 make menu_config Device Drivers ---> [*]USB support --> USB Mass Storage suppo ...

  4. linux下串口通信程序,关于Linux下串口通信的一点心得

    1. 打开串口 与其他的关于设备编程的方法一样,在 Linux 下,操作.控制串口也是通过操作起设备文件进行的.在 Linux 下,串口的设备文件是 /dev/ttyS0 或 /dev/ttyS1 等 ...

  5. linux下怎么查看程序异常,linux程序莫名异常怎么查

    内存异常经常导致程序出现莫名其妙的错误,往往很难查证,本文介绍在linux下的各种常见内存异常的查证工具和方法. 1 访问空指针/未初始化指针/重复释放内存 对于像访问空指针.未初始化指针(非法地址) ...

  6. linux怎么卸载桌面程序吗,Linux下怎么卸载软件

    Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序"来实现.与其相类似,在Linux下有一 ...

  7. linux无后缀名程序运行,linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?

    我的猜测是这是64位系统上的32位编译.我使用gcc上的-m32选项将一个小的c文件交叉编译成二进制文件.这还需要一些额外的包.结果a.out看起来像这样. % file a.out a.out: E ...

  8. Linux系统运行Windows程序(Linux执行windows程序)

    dpkg --add-architecture i386 && apt-get update && apt-get install wine32 需要安装32位wine ...

  9. linux命令和应用程序,在Linux中开发C应用程序时的重要且方便的工具和命令

    您将需要熟悉linux命令行工具.特别是: >学习一个好的编辑器,如vim或emacs >使用make编写构建脚本 >使用gcc编译 >使用gdb进行调试 >源代码控制: ...

最新文章

  1. php查询mysql放到数组中_php查询mysql数据库并将结果保存到数组的方法
  2. springboot默认数据源如何设置连接数_spring boot基于DRUID数据源密码加密及数据源监控实现...
  3. .net System.Web.Caching.Cache缓存类使用详解(转载)
  4. 深入浅出Java复用类【从字节码角度看toString调用机制、对象代理、组合与继承、转型、final、初始化】
  5. C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
  6. 四针手表指的是什么_1000~1500元的男士手表推荐
  7. c++抛出异常与栈展开(stack unwinding)
  8. RabbitMQ知多少
  9. C语言试题七十六之请编写函实现百钱买百鸡
  10. idea下拉项目_推荐几款非常好用的IDEA插件(香)
  11. java map 内存可见性_JMM(一):初识Java内存模型
  12. CSS学习总结3:CSS定位
  13. awakeFromNib 与 viewDIdLoad 自己小结
  14. SQL2008如何建立数据库
  15. workFlow学习总结---------------------常用的工作流引擎
  16. 用html5画卡通人物源代码,用canvas画一个卡通人物!!
  17. easyconnect(mac版)总是初始化问题
  18. 相对传统桌面设计器,在线报表设计器价值何在?
  19. java pem 签名_如何在Java中验证PEM格式证书
  20. jquery 自动触发 标签的click()方法

热门文章

  1. python购物记录程序_python ATM购物程序
  2. 存储过程能用if not exist_C++核心准则T.48:如果不能用概念,用enable_if
  3. 方钢管弹性模量计算方式_弹性模量的物理学本质
  4. KDD 2021 | 一种使用真负样本的在线延迟反馈建模
  5. nrf51822-广播模式
  6. 用js写出水仙花数,JS 水仙花数
  7. HFSS怎样在波导中显示多个模式
  8. uilabel 自行撑开高度_UILabel文本高度计算的那些事儿
  9. windows系统修改cmd窗口编码格式
  10. 深度使用魅族16T后的评价(本人魅友,绝对客观公正,不要盲目的为手机厂商辩护,想想从当初到现在,魅族正在一步步背离自己的信仰,有问题,解决问题才能有更好的发展)