我有一台 CentOS 6.4 服务器,当我ulimit -a
以 root 身份运行时,出现以下信息:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 92905
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 65536
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
当我ulimit -a
以 apache 的用户身份运行时,我得到了这个:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 92905
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 32768
cpu time (seconds, -t) unlimited
max user processes (-u) 92905
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
我如何确保所有用户都设置了相同的堆栈大小?
编辑:
[root@web3 ~]# tail /etc/security/limits.conf
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
* - stack 65536
apache - stack 65536
# End of file
[root@web3 ~]#
即使我改变了此设置/etc/security/limits.conf
并重新启动了服务器, apache 的堆栈大小仍然是 32768。
答案1
不确定你为什么要为所有用户设置相同的限制。但我认为理想的位置是 /etc/profile 或 /etc/bashrc。
答案2
在 CentOS 6.4 中,apache 用户的主目录默认为 /var/www。这也是 Apache DocumentRoot。但是,由于 apache 用户的 shell 是 /sbin/nologin,因此将 shell 配置文件放在这里不会有太大用处。
不过,您可以在 /etc/security/limits.conf 中针对每个用户或每个组设置限制,这将允许您获得正确的结果。此外,您可以在 limits.conf 中设置硬限制和软限制,以实现更灵活的配置。
答案3
好的,我找到了解决方案。它似乎是在文件中默认设置的/etc/init.d/httpd
。我在每个服务器上手动更改了它,重新启动后httpd
,现在它设置正确了。