查看Linux用户帐户的ulimit值
查看当前用户的所有软限制和硬限制:
ulimit -Sa ## 查看软限制 ulimit -Ha ## 查看硬限制
输出示例:
core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7742 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 4096 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 7742 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
查看用户tom的所有硬ulimit值
使用root权限或者sudo命令运行命令:
su - tom -c "ulimit -Ha" su - tom --shell /bin/bash -c "ulimit -Ha" sudo -u tom bash -c "ulimit -Ha" sudo -u tom sh -c "ulimit -Ha"
查看用户tom的所有软限制值
su - tom -c "ulimit -Sa" su - tom --shell /bin/bash -c "ulimit -Sa" sudo -u tom bash -c "ulimit -Sa" sudo -u tom sh -c "ulimit -Sa"
为进程用户查找ulimit -a
有时候进程是在后台运行的,而且其运行的用户是无法进行shell访问的。
如果使用上面的方法,查看limit值,就会报错:
$ su - apache -c "ulimit -Sa"
This account is currently not available.
所以我们需要使用下面的方法:
查看进程的limit值
语法为:
cat /proc/PID/limits
首先找到nginx的PID(进程ID)
ps aux | grep nginx
然后查看进程的limit值
cat /proc/3331/limits
输出示例:
Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes unlimited unlimited processes Max open files 1024 1048576 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 385944 385944 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
一般比较关心的是apache进程的最大进程数和打开文件数。
ulimit选项说明
选项 | 说明 |
---|---|
-S | 使用软资源限制 |
-H | 使用硬资源限制 |
-a | 报告所有当前限制 |
-b | 套接字缓冲区大小 |
-c | 创建的核心文件的最大大小 |
-d | 进程数据段的最大大小 |
-e | 最大调度优先级(nice) |
-f | shell及其子级写入文件的最大大小 |
-i | 待处理信号的最大数量 |
-k | 为此进程分配的最大队列数 |
-l | 进程可能锁定到内存的最大大小 |
-m | 最大居民集大小 |
-n | 打开文件描述符的最大数量 |
-p | 管道缓冲区大小 |
-q | POSIX消息队列中的最大字节数 |
-r | 最大实时调度优先级 |
-s | 最大堆栈大小 |
-t | 以秒为单位的最大cpu时间 |
-u | 最大用户进程数 |
-v | 虚拟内存的大小 |
-x | 文件锁的最大数量 |
-P | 最大伪终端数 |
-T | 最大线程数 |
在Linux中,如何查看为用户设置的ulimit值?
如何设置Linux 进程的ulimit值?
ulimit值通常在/etc/security/limits.conf文件或systemd中定义的。
Linux ulimit命令用于设置或显示用户进程资源限制。
Linux 资源限制分为2部分:
软限制
所有用户都可以更改软限制,最高可以设置为硬限制。将-S选项传递给ulimit。硬限制
仅允许root用户更改资源硬限制。将-H选项传递给ulimit。
日期:2020-03-23 08:03:52 来源:oir作者:oir