精华内容
下载资源
问答
  • 临时方法为了优化linux性能,可能需要修改这个最大值。临时修改的话ulimit -n 204800就可以了,重启后失效。2.永久生效方法(1)、修改/etc/security/limits.conf文件 在文件末尾添加如下内容,然后重启服务器或重新...

    正常情况下, /etc/security/limits.conf 的改动,应该在下次访问时就生效才对。

    一、修改方法

    1.临时方法

    为了优化linux性能,可能需要修改这个最大值。临时修改的话ulimit -n 204800就可以了,重启后失效。

    2.永久生效方法

    (1)、修改/etc/security/limits.conf文件 在文件末尾添加如下内容,然后重启服务器或重新登录即可生效。重启后用查看命令进行查看,如果显示数字等于204800即证明修改成功。如果不成功请继续往下看。

    修改配置命令:

    vim /etc/security/limits.conf

    查看命令:(-n是可以打开最大文件描述符的数量。 -u是用户最大可用的进程数。)

    ulimit -n

    ulimit -u

    * soft nofile 204800

    * hard nofile 204800

    * soft nproc 204800

    * hard nproc 204800

    我在解决这个问题时候,发现网上都是说修改这一个文件就行,但是我修改后重启服务器发现没更改过来。

    后来发现,还需要修改两个文件。如果你重启后也没生效,请继续跟着往下修改。

    注:在修改下面(2)、(3)所示的这些文件时候,有些文件可能并不存在,或者90-nproc.conf没有,但是有20-nproc.conf,建议从根路径下,自己亲自cd进去。然后一步步找到目标文件。如果90-nproc.conf不存在,修改类似的文件即可,即xx-nproc.conf。

    (2)、/etc/security/limits.d/90-nproc.conf文件尾添加

    * soft nproc 204800

    * hard nproc 204800

    (3)、/etc/security/limits.d/def.conf文件尾添加

    * soft nofile 204800

    * hard nofile 204800

    修改后,重启服务器,继续用查看命令查看,如果还是没解决,继续往下看。

    二、不生效原因及解决方案

    1. 确保 pam 生效

    在 /etc/pam.d/login 中,存在:

    session required pam_limits.so

    2. 确保 ssh 使用 pam

    在 /etc/pam.d/sshd 中,存在:

    session required pam_limits.so

    在 /etc/ssh/ssd_config 中, 存在:

    UsePAM yes

    3. limits.conf 建议不要使用星号

    官方 manual 以及网上的教程有很多都用了 * 符号,然而不是所有系统都认的,比如我在解决这个问题时候,发现ubuntu系统就不支持。最前面一列代表用户名即root和evan。

    不兼容方式:

    * soft nofile 204800

    * hard nofild 204800

    兼容方式

    root soft nofile 204800

    root hard nofile 204800

    evan soft nofile 204800

    evan hard nofile 204800

    如果你做完这所有,都没有解决问题,那么你可以在我的博客留言,或者加入技术交流群:805069260,在群内私聊我,我来帮你解决。

    展开全文
  • linux修改limits.conf不生效

    千次阅读 2019-12-25 22:10:01
    (1)、修改/etc/security/limits.conf文件 在文件末尾添加如下内容,然后重启服务器或重新登录即可生效。重启后用查看命令进行查看,如果显示数字等于204800即证明修改成功。如果不成功请继续往下看。 修改配置命令:...

    正常情况下, /etc/security/limits.conf 的改动,应该在下次访问时就生效才对。

    一、修改方法

    1.临时方法

    为了优化linux性能,可能需要修改这个最大值。临时修改的话ulimit -n 204800就可以了,重启后失效。

    2.永久生效方法

    (1)、修改/etc/security/limits.conf文件 在文件末尾添加如下内容,然后重启服务器重新登录即可生效。重启后用查看命令进行查看,如果显示数字等于204800即证明修改成功。如果不成功请继续往下看

    修改配置命令:
    vim /etc/security/limits.conf
    查看命令:(-n是可以打开最大文件描述符的数量。 -u是用户最大可用的进程数。)
    ulimit -n
    ulimit -u
    
    * soft nofile 204800
    * hard nofile 204800
    * soft nproc 204800
    * hard nproc 204800
    

    我在解决这个问题时候,发现网上都是说修改这一个文件就行,但是我修改后重启服务器发现没更改过来。
    后来发现,还需要修改两个文件。如果你重启后也没生效,请继续跟着往下修改

    注:在修改下面(2)、(3)所示的这些文件时候,有些文件可能并不存在,或者90-nproc.conf没有,但是有20-nproc.conf,建议从根路径下,自己亲自cd进去。然后一步步找到目标文件。如果90-nproc.conf不存在,修改类似的文件即可,即xx-nproc.conf。

    (2)、/etc/security/limits.d/90-nproc.conf文件尾添加

    * soft nproc 204800
    * hard nproc 204800
    

    (3)、/etc/security/limits.d/def.conf文件尾添加

    * soft nofile 204800
    * hard nofile 204800
    

    修改后,重启服务器,继续用查看命令查看,如果还是没解决,继续往下看。

    二、不生效原因及解决方案

    1. 确保 pam 生效

    在 /etc/pam.d/login 中,存在:
    session required pam_limits.so
    

    2. 确保 ssh 使用 pam

    在 /etc/pam.d/sshd 中,存在:
    session required pam_limits.so
    
    在 /etc/ssh/ssd_config 中, 存在:
    UsePAM yes
    

    3. limits.conf 建议不要使用星号

    官方 manual 以及网上的教程有很多都用了 * 符号,然而不是所有系统都认的,比如我在解决这个问题时候,发现ubuntu系统就不支持。最前面一列代表用户名即root和evan

    不兼容方式:

    * soft nofile 204800
    * hard nofild 204800
    

    兼容方式

    root soft nofile 204800
    root hard nofile 204800
    evan soft nofile 204800
    evan hard nofile 204800
    

    如果你做完这所有,都没有解决问题,那么你可以在我的博客留言,或者加入技术交流群:805069260,在群内私聊我,我来帮你解决。

    展开全文
  • session required pam_limits.so
  • linux修改max user processes limits

    万次阅读 2016-03-29 12:24:37
    然后,一般来说,修改ulimit的数值,只需要修改/etc/security/limits.conf即可,但是这个参数需要修改/etc/security/limits.d/90-nproc.conf。 至于为什么需要修改这里,请看褚霸的这篇 blog : 但是,还有一个...

    具体:
    最近新上了一批服务器,内核升级到了2.6.32版本,部署完MySQL实例后上到线上,直接负载冲到15,cpu使用达到700%。

    01:20:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-1503:50:01 PM        34      1506     22.95     18.11     11.7801:20:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle03:50:01 PM     all     95.13      0.00      3.31      0.06      0.00      1.49

    当时就有点蒙,io并不是瓶颈,业务也米有变更,线上的服务器都运行正常,为什么这台新机器就变成这个模样了呢?
    最后才发现又是一个ulimit的坑啊,之前对于ulimit -n已经碰了多次头,这次又差点碰的头破血流,万幸灰度上了1台slave,并没有影响到线上。
    这次碰到的问题是ulimit -u,这个-u是做什么用的呢?

    core file size          (blocks, -c) 0data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0file size               (blocks, -f) unlimited
    pending signals                 (-i) 514875max locked memory       (kbytes, -l) 64max memory size         (kbytes, -m) unlimited
    open files                      (-n) 204800pipe size            (512 bytes, -p) 8POSIX message queues     (bytes, -q) 819200real-time priority              (-r) 0stack size              (kbytes, -s) 10240cpu time               (seconds, -t) unlimited
    max user processes              (-u) 204800virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited

    可以从上面看出,用来限制max user processes的数量的。
    但是这个user processes是什么呢?
    Linux itself has a Max Processes per user limit. This feature allows us to control the number of processes an existing user on the server may be authorized to have
    这个ulimit -u是用来限制每个用户的最大processes数量。如果ulimit -u进行了限制那么每个linux用户可以派生出来的process就会被限制再这个数值之内。
    那么这个限制和MySQL有什么关系呢,我们看如下的测试。

    测试:
    首先,在一台服务器上启两个MySQL实例,分别限制max connetcionts=1024 , ulimit -u=1024
    然后,在一台服务器上运行类似下面的脚本

    for i in `seq 1 2010`do
        echo $i
        mysqlha_login.sh -h 10.77.7.56 -P 3306 -e'system sleep 60;' &
        mysqlha_login.sh -h 10.77.7.56 -P 3307 -e'system sleep 60;' &done

    当i的数值超过1009的时候就会出现如下报错
    Can’t create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug
    这就是无法再创建出新的process了。
    如果我们将ulimit -u改为10240,再进行一次测试呢?
    User myadmin already has more than ‘max_user_connections’ active connections
    报错就变更为我们常见的超过最大连接数的报错了。
    so,对于提供长链接的MySQL服务,建议都讲这个值调整为10240或者更大。对于提供短链接的服务,暂时并没有出现本次发现的错误。

    修改:
    不同内核参数的默认值也是不同的,请注意。

    2.6.18ore file size          (blocks, -c) 0data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0file size               (blocks, -f) unlimited
    pending signals                 (-i) 139264max locked memory       (kbytes, -l) 32max memory size         (kbytes, -m) unlimited
    open files                      (-n) 288000pipe size            (512 bytes, -p) 8POSIX message queues     (bytes, -q) 819200real-time priority              (-r) 0stack size              (kbytes, -s) 10240cpu time               (seconds, -t) unlimited
    max user processes              (-u) unlimitedvirtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    2.6.32core file size          (blocks, -c) 0data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0file size               (blocks, -f) unlimited
    pending signals                 (-i) 514875max locked memory       (kbytes, -l) 64max memory size         (kbytes, -m) unlimited
    open files                      (-n) 204800pipe size            (512 bytes, -p) 8POSIX message queues     (bytes, -q) 819200real-time priority              (-r) 0stack size              (kbytes, -s) 10240cpu time               (seconds, -t) unlimited
    max user processes              (-u) 1024virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited

    然后,一般来说,修改ulimit的数值,只需要修改/etc/security/limits.conf即可,但是这个参数需要修改/etc/security/limits.d/90-nproc.conf。
    至于为什么需要修改这里,请看褚霸的这篇blog
    但是,还有一个问题,这个参数需要在mysqld启动之前调整,如果mysqld已经启动,再动态调整是无效的。(大家都知道stop start mysql是一件比较麻烦的事情,涉及线上业务就更麻烦了)
    那么,有没有可以动态调整的方法呢?
    echo -n ‘Max processes=SOFT_LIMITS:HARD_LIMITS’ > /proc/`pidof mysqld`/limits
    通过如上命令就可以动态调整已经存在的mysqld的processes限制了。

    附录:
    附录1:centos 6.*可以修改/etc/security/limits.d/90-nproc.conf
    但,centos 5.*并没有90-nproc.conf这个文件,我这边是通过修改/etc/security/limits.conf,在最后添加
    * soft nproc 65535
    * hard nproc 65535



    Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数

    可以用ulimit -a 来显示当前的各种用户进程限制。
    下面我把某linux用户的最大进程数设为10000个:
         ulimit -u 10240
         对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
         最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
         ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
         其他建议设置成无限制(unlimited)的一些重要设置是:
         数据段长度:ulimit -d unlimited
         最大内存大小:ulimit -m unlimited
         堆栈大小:ulimit -s unlimited
         CPU 时间:ulimit -t unlimited
         虚拟内存:ulimit -v unlimited
      
         暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
         永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:

    1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
            vi /etc/security/limits.conf
            # 添加如下的行
            * soft noproc 11000
            * hard noproc 11000
            * soft nofile 4100
            * hard nofile 4100
           说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
    2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
            a、vi /etc/ssh/sshd_config
                 把 UserLogin 的值改为 yes,并把 # 注释去掉
            b、重启 sshd 服务:
                  /etc/init.d/sshd restart
    3)、修改所有 linux 用户的环境变量文件:
        vi /etc/profile
        ulimit -u 10000
        ulimit -n 4096
        ulimit -d unlimited
        ulimit -m unlimited
        ulimit -s unlimited
        ulimit -t unlimited
        ulimit -v unlimited

     保存后运行#source /etc/profile 使其生效

    /**************************************

    有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
    修改2个文件。


    1./etc/security/limits.conf
    vi /etc/security/limits.conf
    加上:
    * soft nofile 8192
    * hard nofile 20480


    2./etc/pam.d/login
    session required /lib/security/pam_limits.so
    /**********
    另外确保/etc/pam.d/system-auth文件有下面内容
    session required /lib/security/$ISA/pam_limits.so
    这一行确保系统会执行这个限制。


    /***********
    3.一般用户的.bash_profile
    #ulimit -n 1024
    重新登陆ok
     

    ulimit 的作用
      =======================
     
    ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止。


    参数 描述
    ulimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)
    和可同时运行的最大进程数(max user processes)无效
    -a 列出所有当前资源极限
    -c 设置core文件的最大值.单位:blocks
    -d 设置一个进程的数据段的最大值.单位:kbytes
    -f Shell 创建文件的文件大小的最大值,单位:blocks
    -h 指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限
    -l 可以锁住的物理内存的最大值
    -m 可以使用的常驻内存的最大值,单位:kbytes
    -n 每个进程可以同时打开的最大文件数
    -p 设置管道的最大值,单位为block,1block=512bytes
    -s 指定堆栈的最大值:单位:kbytes
    -S 指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果 -H 和 -S 标志均未指定,极限适用于以上二者
    -t 指定每个进程所使用的秒数,单位:seconds
    -u 可以运行的最大并发进程数
    -v Shell可使用的最大的虚拟内存,单位:kbytes
    -x

    范例1:

    [root@localhost proc]# ulimit -a
    core file size (blocks, -c) 100
    data seg size (kbytes, -d) unlimited
    file size (blocks, -f) unlimited
    pending signals (-i) 2047
    max locked memory (kbytes, -l) 32
    max memory size (kbytes, -m) unlimited
    open files (-n) 1024
    pipe size (512 bytes, -p) 8
    POSIX message queues (bytes, -q) 819200
    stack size (kbytes, -s) 8192
    cpu time (seconds, -t) unlimited
    max user processes (-u) 2047
    virtual memory (kbytes, -v) unlimited
    file locks (-x) unlimited
    [root@localhost proc]#

    输出的每一行由资源名字、(单位,ulimit命令的参数)、软限制组成。详细解释:
    参数 描述
    core file size core文件的最大值为100 blocks,
    data seg size 进程的数据段可以任意大
    file size 文件可以任意大
    pending signals 最多有2047个待处理的信号
    max locked memory 一个任务锁住的物理内存的最大值为32kB
    max memory size 一个任务的常驻物理内存的最大值
    open files 一个任务最多可以同时打开1024的文件
    pipe size 管道的最大空间为4096字节
    POSIX message queues POSIX的消息队列的最大值为819200字节
    stack size 进程的栈的最大值为8192字节
    cpu time 进程使用的CPU时间
    max user processes 当前用户同时打开的进程(包括线程)的最大个数为2047
    virtual memory 没有限制进程的最大地址空间
    file locks 所能锁住的文件的最大个数没有限制

    范例2:通过ulimit命令来限制文件的大小,从而导致拷贝命令的失败

    [root@localhost]ls temp.txt
    ls: temp.txt: 没有那个文件或目录
    [root@localhost]ulimit -f 1 #设置创建文件的最大块(一块=512字节)
    [root@localhost]cat a.c > temp.txt
    文件大小超出限制

    文件a.c的大小是5002字节,而我们设定的创建文件的大小是512字节x1块=512字节 

    展开全文
  • linux修改/etc/security/limits.conf不生效步骤结语 步骤 1:soft,hard设为同一值 2:修改/etc/pam.d/login文件 echo “session required /lib64/security/pam_limits.so” >>/etc/pam.d/login echo ...

    linux修改/etc/security/limits.conf不生效

    步骤

    1:soft,hard设为同一值
    2:修改/etc/pam.d/login文件
    echo “session required /lib64/security/pam_limits.so” >>/etc/pam.d/login
    echo “session required pam_limits.so” >>/etc/pam.d/login
    3:重启即可
    4:要切换到对应的用户才能看到生效的文件

    结语

    点赞是对我最大的支持,关注是我最大的认可
    邮箱:905049079@qq.com
    QQ:905049079

    转载请注明文章来源

    展开全文
  • 操作:vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096 2:修改/etc/pam.d/login文件 echo “session required /lib64/security/pam_limi...
  • linux centos limits.conf 修改错误,无法登陆问题修复
  • linuxlimits.conf 修改不生效的原因

    千次阅读 2020-03-07 22:26:53
    ELK环境搭建时,发现需要修改ulimit 设置,否则就会报错。 总结下来发现要使limits.conf生效,需要设置 UsePAM yes UseLogin yes #这个保证其他的用户也能修改设置 /etc/pam.d/login /etc/pam.d/system-auth /etc/...
  • Linux 修改/etc/security/limits.conf

    千次阅读 2020-06-09 18:34:10
    limits.conf limits.d/ [root@gptest01 ~]# cd /etc/security/limits.d/ [root@gptest01 limits.d]# ll total 4 -rw-r--r-- 1 root root 193 Jun 9 16:22 90-nproc.conf [root@gptest01 limits.d]# vim 90-nproc....
  • 动态修改 mysql 进程的 limits 参数,可以使用如下方式: echo -n ‘Max processes=SOFT_LIMITS:HARD_LIMITS’ > /proc/`pidof mysqld`/limits 通过如上命令就可以动态调整已经存在的 mysqld 的 processes ...
  • linux下安装Oracle 一般都会修改 /etc/security/limits.conf这个文件,但是这里面的具体含义未必每个人都会,刚开始我也不是很清除,只知道要修改,每次安装按照文档配置就可以了。今天看到一般文章的介绍,特记录...
  • linux limits.conf 配置

    千次阅读 2015-12-14 12:50:56
    limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。  limits.conf的格式如下: username|@groupname type resource ...
  • Linux设置limits

    千次阅读 2013-11-15 18:46:42
    limits.conf的工作原理:   limits.conf的后端是这样工作的:limits.conf是pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调 用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块...
  • Linuxlimits.conf配置失效

    千次阅读 2018-10-30 20:23:24
    为了提高nginx+3台tomcat集群的并发量,修改linuxlimits.conf配置文件。 问题: 有两台服务器修改重启后生效。而另外一台服务器迟迟不能生效。 根据网上查的资料,均无果。折腾了一天,对比正常的系统的limits....
  • 1、前提:不重启进程,动态修改进程的limits限制 2、条件:centos 6.2之后的系统 Linux 2.6.32开始 3、举例: 在设置MySQL的参数max_connections之外, 还需要考虑设置/etc/security/limits.conf文件的大小MySQL...
  • ### Code Reference ...DESC:linux 修改用户打开文件数量 Last Update:2020-7-13 10:00 linux 修改用户打开文件数量 ... # 修改/etc/security/limits.conf配置文件 postgres soft nofile 2048 postgres har

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,136
精华内容 15,254
关键字:

limitslinux修改

linux 订阅