1、总结系统限制有:
    /proc/sys/kernel/pid_max #查系统支持的最大线程数,一般会很大,相当于理论值
    /proc/sys/kernel/thread-max
    max_user_process(ulimit -u) #系统限制某用户下最多可以运行多少进程或线程
    /proc/sys/vm/max_map_count    硬件内存大小

2、Java虚拟机本身限制:
    -Xms  #intial java heap size
    -Xmx  #maximum java heap size
    -Xss  #the stack size for each thread

3、查询当前某程序的线程或进程数
pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l

pstree -p 3660 | wc -l

4、查询当前整个系统已用的线程或进程数

pstree -p | wc -l

5、其他

top -p {pid}

pstree -p {pid}


命令ulimit的格式:
ulimit [-acdfHlmnpsStuv] [limit]
在查看的命令后面加上限制值,就可以调整某一项限制,但只对当前登录shell有效。
 参数S表示设置软限制;参数H表示设置硬限制;当都不指定时,表示设置软限制和硬限制均为指定值。
   -S   Set a soft limit for the given resource                    #设置给定资源的软限制
-H Set a hard limit for the given resource                   #设置给定资源的硬限制
-a All current limits are reported.                        #显示当前所有限制的内容
-c The maximum size of core files created.                    #-c <core文件上限> 设定core文件的最大值,单位为区块。
-d The maximum size of a process's data segment.                 #-d <数据节区大小>  程序数据节区的最大值,单位为KB。
-f The maximum size of files created by the shell(default option) #-f <文件大小>  shell所能建立的最大文件,单位为区块。 
-l The maximum size that can be locked into memory.               #可以锁定的物理内存的最大值
-m The maximum resident set size.                          #可以使用的常驻内存的最大值,单位:kbytes
-n The maximum number of open file descriptors.                 #每个进程可以同时打开的最大文件数
-p The pipe buffer size.                               #设置管道的最大值,单位为block,1block=512bytes
-s The maximum stack size.                              #指定堆栈的最大值:单位:kbytes
-t The maximum amount of cpu time in seconds.                  #指定每个进程所使用的秒数,单位:seconds
-u The maximum number of processes available to a single user.        #每个用户运行的最大进程并发数
-v The maximum amount of virtual memory available to the process.      #当前shell可使用的最大虚拟内存
$ ulimit -a
core file size (blocks, -c) 100      #文件的最大值为100 blocks          
data seg size (kbytes, -d) unlimited   #进程的数据段可以任意大 unlimited不限制
scheduling priority (-e)
file size (blocks, -f) unlimited #文件可以任意大
pending signals (-i) 16382 #最多有16382个待处理的信号
max locked memory (kbytes, -l) 64 #一个任务锁住的物理内存的最大值为64kB
max memory size (kbytes, -m) unlimited #一个任务的常驻物理内存的最大值
open files (-n) 1024 #一个任务最多可以同时打开1024的文件
pipe size ( bytes, -p) 8 #管道的最大空间为4096字节
POSIX message queues (bytes, -q) 819200      #POSIX的消息队列的最大值为819200字节
real-time priority (-r)
stack size (kbytes, -s) 8192       #进程的栈的最大值为8192字节
cpu time (seconds, -t) unlimited    #进程使用的CPU时间
max user processes (-u) unlimited    #当前用户同时打开的进程(包括线程)的最大个数
virtual memory (kbytes, -v) unlimited    #没有限制进程的最大地址空间
file locks (-x) unlimited    #所能锁住的文件的最大个数没有限制

Example:

1、修改linux对于每个用户,系统限制其最大进程数 设置linux用户的最大进程数,如10000

ulimit -u 

2、对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,需要设置每个进程可打开的文件数,缺省值是 1024。

ulimit -n 

3、CPU 时间

ulimit -t unlimited

永久修改ulimit值  ------/etc/security/limits.conf

limits.conf-pam_limits模块的配置文件

<domain> <type> <item> <value>

  • domain 是指生效实体

    • 用户名
    • 也可以通过@group指定用户组
    • 使用*表示默认值
  • type指限制类型
    • soft软限制
    • hard硬限制
  • item限制资源
    • coreulimit -c
    • dataulimit -d
    • fsizeulimit -f
    • memloculimit -l
    • nofileulimit -n
    • stackulimit -s
    • cpu 同ulimit -t
    • nproculimit -u
    • maxlogins指定用户可以同时登陆的数量
    • maxsyslogins系统可以同时登陆的用户数
    • priority用户进程运行的优先级
    • locks用户可以锁定的文件最大值
    • sigpengdingulimit -i
    • msgqueueulimit -q

Linux系统的限制的更多相关文章

  1. 在Linux系统下运行微信Web开发者工具

    微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...

  2. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  3. Linux系统中的Device Mapper学习

    在linux系统中你使用一些命令时(例如nmon.iostat 如下截图所示),有可能会看到一些名字为dm-xx的设备,那么这些设备到底是什么设备呢,跟磁盘有什么关系呢?以前不了解的时候,我也很纳闷. ...

  4. 玩转 Linux 系统的方法论

    Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...

  5. Linux 系统中发博客必备的五大图片处理神器

    发博客时,总免不了要用图片说话.经过长时间的磨合,在 Linux 桌面系统下有几款图片处理软件我已经用得比较顺手了.这几款软件在 Linux 世界使用广泛,各个 Linux 发行版的软件仓库中都有自带 ...

  6. 探索 Linux 系统的启动过程

    引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...

  7. 在linux系统中安装VSCode(Visual Studio Code)

    在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网  ...

  8. 如何重置硬盘遭到“损坏”的Linux系统root用户密码

    传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...

  9. Linux 系统中的MySQL数据库默认区分大小写

    今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...

  10. 如何配置Linux系统的网络IP地址

    一台安装了Linux系统的电脑如果想要联网,首先要做的就是进行网络配置.今天小编就以CentOS6.4系统为例为大家介绍整个网络配置的过程,虽然只是以CentOS6.4系统为例,但是其它的Linux系 ...

随机推荐

  1. Create Table操作

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  2. PHP数据库基础(简单的)

    经常用到的函数 $link=mysql_connect("数据库地址","用户名","密码");//链接数据库mysql_query(“se ...

  3. 12 文件流(Unity3D)

      关于文件操作在脚本中可以通过xml或其他的与文件相关的类中封装的一些方法可读取本地Asset文件夹下的xml文档和json文档到游戏中.但是这样操作文件难免会有拖延,C#提供了一种文件操作的方法, ...

  4. springMvc接收json和返回json对象

    导入三个包 页面: function sendJson(){ //请求json响应json $.ajax({ type:"post", url: "${pageConte ...

  5. P 1019 数字黑洞

    转跳点:

  6. UVA - 1647 Computer Transformation(计算机变换)(找规律)

    题意:初始串为一个1,每一步会将每个0改成10,每个1改成01,因此1会依次变成01,1001,01101001,……输入n(n<=1000),统计n步之后得到的串中,"00" ...

  7. 菜鸟理解Lamdba表达式

    简单的说就是Java 1.8后给出个简化代码的方式, Java面向对象过分强调必须通过对象的形式来完成任务,而函数思想则尽量忽略面向对象的复杂语法,强调做什么,而不是以什么形式做. 举个栗子! 首先创 ...

  8. 使用eclipse创建maven时遇到的问题

    转自https://www.cnblogs.com/hongmoshui/p/7994759.html   1.在eclipse中用maven创建项目,右键new>>Maven Proje ...

  9. vue仿写taobao

    1.less () cnpm install less less-loader --save ()在webpack.base.conf.js里 { test:/\.less$/, loader:'st ...

  10. idea中maven下载jar包不完整问题

    解决: 1.输入 mvn -U idea:idea 等1.都下载完毕后,在点击2.即Reimport