1.Linux用户进程查看
[bdpcloud@host167 ~]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) 1
pending signals (-i) 379573
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 655350
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
root 账号: ulimit -u 出现到 max user processes 的值 默认是 # cat /proc/sys/kernel/threads-max 的值 / 2,即系统线程数的一半
普通账号 : ulimit -u 出现的 max user processes 的值 默认是 /etc/security/limits.d/20-nproc.conf (centos6 是 90-nproc.conf) 文件中的
2.Linux用户(bdpcloud)进程占满,无法切换用户
[nmportal@host167 da]$ su - bdpcloud
密码:
su: cannot set user id: Resource temporarily unavailable
3.当前用户(bdpcloud)无法登陆,切换root用户查看进程
查看当前用户(bdpcloud)所有进程情况
[root @host167da]$ ps -u bdpcloud -L
PID LWP TTY TIME CMD
24234 24234 ? 00:00:00 java
24234 24284 ? 00:00:11 java
24234 24285 ? 00:01:13 java
... ...
查看当前用户(bdpcloud)进程数量
[root @host167 da]$ ps -u bdpcloud -L | wc -l
6353
修改Linux用户进程数
[root@host167 da]$ vim /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
注:*代码其他所有的普通用户
4.系统总限制和修改
其实上面的系统进程即使修改为最大值max user processes 65535 的值也只是表象,普通用户最大进程数无法达到 65535 ,因为用户的 max user processes 的值,最后是受全局的 kernel.pid_max 的值限制的。也就是说 kernel.pid_max=1024,那么你用户的 max user processes 的值是127426,用户能打开的最大进程数还是1024
查看系统进程限制
[bdpcloud@host167 ~]$ cat /proc/sys/kernel/pid_max
458752
或者用下面方法查看
[bdpcloud@host167 ~]$ sysctl kernel.pid_max
kernel.pid_max = 458752
root用户临时修改,重启机器失效
[root@host167 ~]$ echo 65535 > /proc/sys/kernel/pid_max
root用户永久修改,编辑添下面参数,重启机器生效
[root@host167 ~]$ vim /etc/sysctl.conf
kernel.pid_max = 65535