zoukankan      html  css  js  c++  java
  • Linux最大线程数限制及当前线程数查询

    常用配置

    echo 1000000 > /proc/sys/kernel/pid_max 
    
     
    
    a) 当前环境生效
    ulimit -d unlimited 
    ulimit -m unlimited 
    ulimit -s unlimited 
    ulimit -t unlimited 
    ulimit -v unlimited 
    ulimit -n 1000000 b)下次重启生效 vi
    /etc/security/limits.conf # 添加或者修改如下的行 * soft noproc 75535 * hard noproc 75535 * soft nofile 75535 * hard nofile 75535 # * soft memlock -1 # * hard memlock -1 # 配置文件不能直接用unlimited,nofile不能用-1

    查看linux系统级的最大打开文件数限制,使用如下命令:

    #查看限制数 fs.file-max
    [root@web01]# sysctl fs.file-max
    fs.file-max = 65535
    #修改限制数
    [root@web01]# sysctl -w fs.file-max=6553500
    fs.file-max = 6553500
    需要永久生效则 echo "fs.file-max=6553500" >>/etc/sysctl.conf
    
    # sysctl fs.file-nr
    fs.file-nr = 960        0       6553500
    对用户同时打开文件数的限制,但仍会出现并发TCP连接数增加到一定数量时,在也无法成功建立新的TCP连接的现象
    修改/etc/sysctl.conf文件,在文件中添加如下行:
    
    net.ipv4.ip_local_port_range = 1024 65000
    执行sysctl命令:
    
    # sysctl -p
    如果系统没有错误提示,就表面新的本地端口范围设置成功
     



    命令参数描述例子
    -H 设置硬资源限制,一旦设置不能增加。 ulimit – Hs 64;限制硬资源,线程栈大小为 64K。
    -S 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 ulimit – Sn 32;限制软资源,32 个文件描述符。
    -a 显示当前所有的 limit 信息 ulimit – a;显示当前所有的 limit 信息
    -c 最大的 core 文件的大小, 以 blocks 为单位 ulimit – c unlimited; 对生成的 core 文件的大小不进行限制
    -d 进程最大的数据段的大小,以 Kbytes 为单位 ulimit -d unlimited;对进程的数据段大小不进行限制
    -f 进程可以创建文件的最大值,以 blocks 为单位 ulimit – f 2048;限制进程可以创建的最大文件大小为 2048 blocks
    -l 最大可加锁内存大小,以 Kbytes 为单位 ulimit – l 32;限制最大可加锁内存大小为 32 Kbytes
    -m 最大内存大小,以 Kbytes 为单位 ulimit – m unlimited;对最大内存不进行限制
    -n 可以打开最大文件描述符的数量 ulimit – n 128;限制最大可以使用 128 个文件描述符
    -p 管道缓冲区的大小,以 Kbytes 为单位 ulimit – p 512;限制管道缓冲区的大小为 512 Kbytes
    -s 线程栈大小,以 Kbytes 为单位 ulimit – s 512;限制线程栈的大小为 512 Kbytes
    -t 最大的 CPU 占用时间,以秒为单位 ulimit – t unlimited;对最大的 CPU 占用时间不进行限制
    -u 用户最大可用的进程数 ulimit – u 64;限制用户最多可以使用 64 个进程
    -v 进程最大可用的虚拟内存,以 Kbytes 为单位 ulimit – v 200000;限制最大可用的虚拟内存为 200000 Kbytes

    我们可以使用ulimit -a查看我们系统的所有限制

    安装pstree
      yum -y install psmisc

     查看linux系统级的最大打开文件数限制,使用如下命令

    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 <pid> | wc -l


    4、查询当前整个系统已用的线程或进程数
    pstree -p | wc -l

    5、查看所有存在的线程

    ps xH

    6、查看一个进程起的线程数

    ps -mp <pid>

  • 相关阅读:
    springboot文件上传: 单个文件上传 和 多个文件上传
    Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格
    springboot项目搭建:结构和入门程序
    POJ 3169 Layout 差分约束系统
    POJ 3723 Conscription 最小生成树
    POJ 3255 Roadblocks 次短路
    UVA 11367 Full Tank? 最短路
    UVA 10269 Adventure of Super Mario 最短路
    UVA 10603 Fill 最短路
    POJ 2431 Expedition 优先队列
  • 原文地址:https://www.cnblogs.com/linn/p/9267356.html
Copyright © 2011-2022 走看看