为了正常运行,我们在安装各种软件后,必须保证设置正确的ulimit值。Linux系统提供了限制资源数量的方法。为每个Linux用户账户设置的限制值。但是,系统的限制也是分别应用于该用户正在运行的每个进程。例如,如果某些阈值太低,系统可能无法使用Nginx/Apache或PHP/Python应用程序来服务网页。用NA命令查看或设置系统资源限制。让我们看看如何使用ulimit来控制shell和进程的可用资源。
如何在Linux系统中找到用户的ulimit?
ulimit Linux命令设置或显示用户进程资源限制。通常,限制是在/etc/security/limits.conf文件或systemd单元中定义的。
两种限制
所有的Linux限制分为软限制和硬限制。
软限制--所有用户都可以改变软限制,最高可到硬限制所设置的最大值。将 -S 选项传递给 ulimit。
硬限制--只有root用户才能更改esource硬限制。将 -H 选项传递给 ulimit。
查看Linux服务器用户账户的ulimit
语法如下,可以查看当前用户的所有软限制和硬限制。
ulimit -Sa ## Show soft limit ##
ulimit -Ha ## Show hard limit ##
列出用户名为“ tom”的所有硬 ulimit
您必须以root用户身份运行以下命令,或者至少可以通过sudo / su访问该帐户:
su - tom -c "ulimit -Ha"
su - tom --shell /bin/bash -c "ulimit -Ha"
## You can use the sudo command ##
sudo -u tom bash -c "ulimit -Ha"
sudo -u tom sh -c "ulimit -Ha"
查找名为“ jerry”的用户的所有软件 ulimit
再次,使用su命令或sudo命令以root用户身份运行它:
su - jerry -c "ulimit -Sa"
su - jerry --shell /bin/sh -c "ulimit -Sa"
## You can use the sudo command ##
sudo -u jerry bash -c "ulimit -Sa"
sudo -u jerry sh -c "ulimit -Sa"
为进程用户寻找'ulimit -a'的进程用户
Linux进程不过是程序的运行实例。例如,当您启动Firefox应用程序时,您创建了一个过程。但是,某些进程在后台运行的时间更长。通常,服务器进程在后台运行,并且您不能使用sudo命令或su命令来找到其限制。在此示例中,nginx在Debian Linux上以www-data用户身份运行,但是出于安全原因,默认情况下阻止对www-data用户帐户的shell访问。换句话说,以下su或sudo命令将失败100%:
$ su - www-data -c "ulimit -Sa"
This account is currently not available.
如何为进程找到ULIMIT
语法是: 首先找到nginx的PID(进程ID),与grep命令一起运行ps 命令: 示例输出:
cat /proc/PID/limits
ps aux | grep nginx
现在运行以下cat命令: 示例输出:
cat /proc/8868/limits
大多数开发者和系统管理员需要知道每个nginx进程的最大进程数和打开的文件数。简而言之,我们用 "ps aux | grep appname "找到PID,然后查看/proc/目录下的那个PID的 "limitors "文件。这样你就可以肯定的知道该进程适用于哪些值来调整性能。