免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: soway
打印 上一主题 下一主题

系统在内存用光后一直要死不活的样子 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2008-09-02 19:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
52 [报告]
发表于 2008-09-02 19:05 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
53 [报告]
发表于 2008-09-02 19:22 |只看该作者

同病相怜,我正在尝试用ulimit限制!

a reference url:

http://www.linuxfly.org/post/73.htm

至于最终该在profile怎么写,谁先实验成功在这里分享下欧!

[ 本帖最后由 xcrossbow 于 2008-9-2 19:23 编辑 ]

论坛徽章:
0
54 [报告]
发表于 2008-09-02 19:33 |只看该作者
记才开始学习的时候老师还出考试题的,现在好久不用想不起来了
上网查了下,不知道对你有所帮助不:
回家了起VM测试看看。

限制用户使用系统资源的简单方法
限制用户使用系统资源,主要包括资源最大进程数,内存使用量等.
需要编辑文件/etc/security/limits.conf以及/etc/pam.d/login
在/etc/security/limits.conf里添加如下三行:
* hard core 0    禁止创建core文件  
* hard rss N  其他用户(除root)最多使用内存量N,N的单位Kb
* hard nproc N  最多进程数限制在N以内


在/etc/pam.d/login后面加一行:
session required /lib/security/pam_limits.so

linux上限制用户进程数、cpu占用率、内存使用率等
   
edit /etc/pam.d/login

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_pwdb.so shadow nullok
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_pwdb.so
password   required     /lib/security/pam_cracklib.so
password   required     /lib/security/pam_pwdb.so shadow nullok use_authtok
session    required     /lib/security/pam_pwdb.so
session    required     /lib/security/pam_limits.so

you have to add the last two lines

edit /etc/security/limits.conf


可带参数:
issue=filename:指定其他配置文件,而不是缺省的/etc/issue.
noesc:不对配置文件中的转移字符进行解释。

配置文件说明:
debug:将调试信息写入日志
conf=filename:指定配置文件

配置文件说明:该配置文件每一行(一个条目)的语法如下:

在这里
可以是
用户名
用户组名,采用@group的语法
通配符*,表示任何
可以是
soft-表示软限制,可以超过该限制
hard-表示硬限制,有root设定,内核执行,不可以超过该限制
可以是
core-core文件大小 (KB)
data-最大数据大小(KB)
fsize-最大文件大小(KB)
memlock-最大可用内存空间(KB)
nofile-最大可以打开的文件数量
rss-最大可驻留空间(KB)
stack-最大堆栈空间(KB)
cpu-最大CPU使用时间(MIN)
nproc-最大运行进程数
as-地址空间限制
maxlogins-某一用户可以登录到系统的最多次数
locks-最大锁定文件数目
需要注意的是,如果无限制可以使用”-”号,并且针对用户限制的优先级要比针对组的
优先级高。

论坛徽章:
0
55 [报告]
发表于 2008-09-02 19:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
56 [报告]
发表于 2008-09-02 20:10 |只看该作者
可以的,我上朋友机器上测试了一下:
未执行脚本前TOP了下
Tasks:  65 total,   1 running,  64 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.8% us,  0.2% sy,  0.0% ni, 98.7% id,  0.3% wa,  0.0% hi,  0.0% si
Mem:    246724k total,   224984k used,    21740k free,    38716k buffers
Swap:   522104k total,      160k used,   521944k free,   117804k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND               
24002 root      16   0  7132 2128 1712 S    0  0.9   0:00.01 sshd                  
24003 root      16   0  7424 2104 1708 S    0  0.9   0:00.01 sshd                  
24007 sshd      15   0  7328 1292  964 S    0  0.5   0:00.01 sshd                  
    1 root      15   0  1652  552  472 S    0  0.2   0:01.44 init                  
    2 root      RT   0     0    0    0 S    0  0.0   0:00.19 migration/0           
    3 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/0           
    4 root      RT   0     0    0    0 S    0  0.0   0:00.16 migration/1           
    5 root      34  19     0    0    0 S    0  0.0   0:00.00 ksoftirqd/1           
    6 root       5 -10     0    0    0 S    0  0.0   0:00.00 events/0              
    7 root       5 -10     0    0    0 S    0  0.0   0:00.06 events/1              
    8 root       5 -10     0    0    0 S    0  0.0   0:00.01 khelper               
    9 root      15 -10     0    0    0 S    0  0.0   0:00.00 kacpid               
   27 root       5 -10     0    0    0 S    0  0.0   0:00.00 kblockd/0            
   28 root       5 -10     0    0    0 S    0  0.0   0:00.00 kblockd/1            
   46 root      15   0     0    0    0 S    0  0.0   0:00.00 pdflush


开始写个死循环进程:
[test@test ~]$ cat si.c
#include <sys/types.h>
#include <unistd.h>
main()
{
       for (;
         fork();
}
[test@test ~]$ gcc si.c -o over.out
[test@test ~]$ ./over.out


在root这边top下:
top - 20:13:33 up 6 days,  5:27,  2 users,  load average: 8.05, 5.50, 2.51
Tasks:  71 total,   9 running,  62 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.6% us, 87.4% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    246724k total,   224480k used,    22244k free,    38716k buffers
Swap:   522104k total,      160k used,   521944k free,   117804k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND               
24223 test     25   0  1740   76   28 R   27  0.0   1:21.48 over.out              
24218 test     25   0  1740   76   28 R   26  0.0   1:21.38 over.out              
24219 test     25   0  1740   76   28 R   26  0.0   1:21.98 over.out              
24222 test     25   0  1740   76   28 R   25  0.0   1:21.28 over.out              
24220 test     25   0  1740   76   28 R   24  0.0   1:21.80 over.out              
24216 test     25   0  1740  232  184 R   24  0.1   1:21.60 over.out              
24217 test     25   0  1740   76   28 R   23  0.0   1:21.39 over.out              
24221 test     25   0  1740   76   28 R   23  0.0   1:21.08 over.out              
26631 root      16   0  2508  936  760 R    0  0.4   0:00.10 top                  
25876 root      16   0  7536 2104 1708 S    0  0.9   0:00.01 sshd                  
26568 root      16   0  5884 1988 1616 S    0  0.8   0:00.01 sshd                  
  389 sshd      15   0  7216 1228  904 S    0  0.5   0:00.01 sshd                  
7578 sshd      15   0  5784 1292  964 S    0  0.5   0:00.01 sshd                  
    1 root      16   0  1652  552  472 S    0  0.2   0:01.46 init                  
    2 root      RT   0     0    0    0 S    0  0.0   0:00.19 migration/0   


看没事,没死机。

cat /etc/security/limits.conf
# /etc/security/limits.conf
*       hard core 0
*       hard rss 5000
*       hard nproc 10

# cat /etc/pam.d/login
#%PAM-1.0
auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_stack.so service=system-auth
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should be the last session rule
session    required     pam_selinux.so open
session required /lib/security/pam_limits.so



不知道我这样测试可否?

[ 本帖最后由 剑次狼 于 2008-9-2 20:12 编辑 ]

论坛徽章:
0
57 [报告]
发表于 2008-09-02 20:15 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
58 [报告]
发表于 2008-09-02 20:21 |只看该作者
原帖由 soway 于 2008-9-2 20:15 发表
是没死机,我说的是rss限制内存的大小,它可以用超过,不过你这个好像真没超过。


# /etc/security/limits.conf
*       hard core 0
*       hard rss 5000
*       hard nproc 10

将最后这个去掉 ...

...........无限进程了。。。OVER了。。。。
这样测试只是测试进程数的
如果是单独消耗内存脚本的话?

[ 本帖最后由 剑次狼 于 2008-9-2 20:30 编辑 ]

论坛徽章:
0
59 [报告]
发表于 2008-09-02 21:47 |只看该作者

回复 #56 剑次狼 的帖子

把程序改成不断分配内存的试试!!

论坛徽章:
0
60 [报告]
发表于 2008-09-02 22:49 |只看该作者
原帖由 chinaunixzcx 于 2008-9-2 21:47 发表
把程序改成不断分配内存的试试!!

不会写,你帮忙写个可否
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP