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. pycharm 设置项目的编译器

    设置编译器(interpreter) File---Setting--在搜索框输入(interpreter)

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-italic

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. POJ 3311 Hie with the Pie 最短路+状压DP

    Hie with the Pie Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11243   Accepted: 5963 ...

  4. 【golang】golang的一些知识要点

    特殊常量iota: 1.iota的值在遇到const关键字时将被重置为0 2.const中每新增一行常量声明将使iota计数一次,也就是自动加一. 3.iota只能在常量定义中使用. iota常见使用 ...

  5. 【LeetCode】二叉树的最大深度

    [问题]给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数.说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7 ...

  6. 群论&Polya计数

    群论&Polya计数 其实在我听课的过程中,我发现针对于学习OI中的群并没有什么过多必要向内学习... 群 以后会补的. 就是\(QQ\)群. 置换 置换就是一个... \[ \begin{m ...

  7. tortoiseGit 的简单使用说明

    拉取仓库到本地 参考 下面几张图片,把仓库拉取到本地. 本地修改并推送 进入文件夹后,按照 下面几张图片切换到本地的开发分支 当修改完成之后,按照 下面几张图片 的方法把修改推送到远程仓库的开发分支. ...

  8. awk 总结

    说明:本文源于“朱双印博客”,原文地址:http://www.zsythink.net/archives/tag/awk awk 命令: 综合: awk功能是对“文本”进行格式化输出,形成报表:awk ...

  9. Java编程知识点梳理

    1. elementAt()   temp.elementAt(0) 返回temp这个vector里面存放的第一个元素--->也是一个vector类型. 2. 字符串空格分割 String [] ...

  10. mint linux的几个问题

    刚开机登录时, 键盘不停的输入同一个字符 发现在虚拟机里安装的系统没有问题, 因此怀疑配置有冲突, 新建一个用户果然能解决问题 解决方法: 把 主目录下, 隐藏的配置目录删除, 重新登录后再配置. 4 ...