• 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 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) 20
    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            (512 bytes, -p) 8              #管道的最大空间为4096字节
    POSIX message queues     (bytes, -q) 819200      #POSIX的消息队列的最大值为819200字节
    real-time priority              (-r) 0
    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 10000

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

    ulimit -n 65535

    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
  • 相关阅读:
    Android Hal 分析
    Android JNI 使用的数据结构JNINativeMethod详解
    MTK GPIO 一些理解
    DEVICE_ATTR
    DEVICE_ATTR
    内核驱动中常见的miscdevice、platform_device、platform_driver
    DEVICE_ATTR实例分析
    虚拟机安装Ubuntu14.04打开FireFox提示Server not found
    Android编译系统中的Kconfig,Makefile,.config编译系统浅析
    几款在线脑图制作工具
  • 原文地址:https://www.cnblogs.com/gavin11/p/11713959.html
Copyright © 2020-2023  润新知