一、ulimit介绍

为了防止失控的进程破坏系统的性能,UNIX和Linux会跟踪进程使用的大部分资源,并允许用户和系统管理员使用对进程的资源限制,例如控制某个进程打开的文件数、对某个用户打开系统进程数进行限制等,一般限制手段包括软限制和硬限制。

  • 软限制(soft limit):内核实际执行的限制,任何进程都可以将软限制设置为任意小于或等于对进程限制的硬限制的值、最大线程数(nproc)和文件数(nofile)
  • 硬限制(hard limit):可以在任何时候任何进程中设置,但硬限制只能由超级用户修改

当日志出现以下情况中的一种时,需要考虑修改nproc:

  • Cannot create GC thread. Out of system resources
  • java.lang.OutOfMemoryError: unable to create new native thread

查看所有用户创建的进程数

ps h -Led -o user | sort | uniq -c | sort -n

二、修改方法

默认Linux内核对每个用户设置了打开文件最大数为1024,对于高并发场景,是远远不够的,需要将默认值调整到更大

1.临时修改

 ulimit -n 65535 
 ulimit -u 65535 

2.永久修改

修改/etc/security/limits.conf,在末尾修改以下内容

* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
  • *代表所有用户,也可以针对不同的用户做出不同的限制
  • soft软限制:是warnning限制,只会做出warning
  • hard硬限制:实际的使用限制

结尾

  • 感谢大家的耐心阅读,如有建议请私信或评论留言。
  • 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新,与大家共同进步
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐