2008年2月25日星期一

服务器资源限制的设置

实验室的服务器刚检修完毕,觉得速度比以前快了一些,最重要的是觉得这是一个新的开始,以前的管理比较乱,现在要从头做起。
现在主管理节点上经常有人在算一些大的,时间长的作业,导致主节点运行效率低,但是这些作业经常是一些老师,也不好意思直接说,于是打算用计算机自动管理。
这方面可以使用ulimit来限制:
对于ulimit有两种:一种是命令行式的

ulimit 命令

用途

设置或报告用户资源极限。
语法

ulimit [ -H ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -s ] [ -t ] [ Limit ]
描述

ulimit 命令设置或报告用户进程资源极限,如 /etc/security/limits.conf 文件所定义。文件包含以下缺省值极限:

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
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) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16383
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited


当新用户添加到系统中时,这些值被作为缺省值使用。当向系统中添加用户时,以上值通过 mkuser 命令设置,或通过 chuser 命令更改。

极限分为软性和硬性。通过 ulimit 命令,用户可将软极限更改到硬极限的最大设置值。要更改资源硬极限,必须拥有 root 用户权限。

a 列出所有当前资源极限。
-c 以 512 字节块为单位,指定核心转储的大小。
-d 以 K 字节为单位指定数据区域的大小。
-f 使用 Limit 参数时设定文件大小极限(以块计),或者在未指定参数时报告文件大小极限。缺省值为 -f 标志。
-H 指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限。
-m 以 K 字节为单位指定物理存储器的大小。
-n 指定一个进程可以拥有的文件描述符的数量的极限。
-s 以 K 字节为单位指定堆栈的大小。
-S 指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果 -H 和 -S 标志均未指定,极限适用于以上二者。
-t 指定每个进程所使用的秒数。
退出状态

返回以下退出值:
0 成功完成。
>0 拒绝对更高的极限的请求,或发生错误。
示例

要将文件大小极限设置为 51,200 字节,输入:

ulimit -f 100

注:在 /etc/security/limits.conf 文件中设置缺省极限就是设置了系统宽度极限,而不仅仅是创建用户时用户所

修改过这个配置文件后需要重新启动生效,使用命令行,可以立刻生效。
我决定把cpu time设置为30分钟则应该为
ulimit -t 1800
这里是秒,配置文件中是分钟。

没有评论: