1.限制用户CPU使用资源

/etc/security/limits.conf   #主配置文件
/etc/security/limits.d/ #子模块配置文件

新建一个普通用户,并查看默认资源限制

[root@reddhat6_155_201 ~]# useradd admin
[root@reddhat6_155_201 ~]# ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
scheduling priority (-e)
file size (blocks, -f) unlimited
pending signals (-i)
max locked memory (kbytes, -l)
max memory size (kbytes, -m) unlimited #内存大小不限制
open files (-n)
pipe size ( bytes, -p)
POSIX message queues (bytes, -q)
real-time priority (-r)
stack size (kbytes, -s)
cpu time (seconds, -t) unlimited #cpu时间不限制
max user processes (-u)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited exit #退出登录

设置admin用户使用CPU资源vim /etc/security/limits.conf

admin           soft     cpu                    #限制admin连续使用CPU不超过1分钟 最大不超过两分钟
admin hard cpu

切换至admin用户,查看可用资源限制

[root@reddhat6_155_200 ~]# su - admin
[admin@reddhat6_155_200 ~]$ ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
scheduling priority (-e)
file size (blocks, -f) unlimited
pending signals (-i)
max locked memory (kbytes, -l)
max memory size (kbytes, -m) unlimited
open files (-n)
pipe size ( bytes, -p)
POSIX message queues (bytes, -q)
real-time priority (-r)
stack size (kbytes, -s)
cpu time (seconds, -t) 60 #已经变为了60秒了 注意此处的单位
max user processes (-u)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited exit #退出当前用户登录

使用dd命令测试 #超过一分钟后自动中断

使用top命令观察dd命令TIME使用时间

尝试自己调大CPU时间 #没有权限

但是可用调大至hard值的上限,即2分钟  #两分钟可以,超过一秒也不行

其他用户限制格式:

username  soft cpu    #指定用户 启动的程序最长只可以使用1分钟的CPU时间,soft警告 hard直接终止程序(重启程序后重新计时)
username hard cpu #也可以使用UID UID后面加:表示大于等于 还可以设置组名 格式为 @groupname
例:
admin hard cpu #admin用户硬限制CPU使用时间为1分钟
soft cpu #UID为500的用户软限制CPU使用时间为5分钟
: hard cpu #UID大于等于500的用户硬限制CPU使用时间为10分钟
@root hard cpu #root组用户硬限制CPU使用时间为20分钟

2.限制用户内存使用资源

内存限制有两个地方分别是:

[root@reddhat6_155_200 ~]# egrep "rss|as" /etc/security/limits.conf
# - rss - max resident set size (KB) #对应top命令中 RES 字段 驻留内存 系统实际分配给程序的内存大小
# - as - address space limit (KB) #对应top目录中 VIRT 字段 虚存地址空间 表示程序希望要多少内存 ******* 需要注意的是当前pam模块不支持RSS现在,只能通过as限制 ******

添加对admin用户内存的限制

[root@reddhat6_155_200 ~]# tail - /etc/security/limits.conf
admin hard as 262144 #对as限制 大小为 262144K 换算为256M

查看admin用户资源限制

[admin@reddhat6_155_200 ~]$ ulimit -a|grep "virtual memory"
virtual memory (kbytes, -v) 262144 #可以看到已经变为262144K了,默认不限制

3.限制用户进程数

配置普通用户打开进程数为1024

[root@reddhat6_155_200 ~]# tail /etc/security/limits.d/-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz # for reasoning. * soft nproc 1024 #普通用户限制进程数为1024
root soft nproc unlimited
[root@reddhat6_155_200 ~]# su - admin
[admin@reddhat6_155_200 ~]$ ulimit -u

使用shell bomb炸弹进行测试

[admin@reddhat6_155_200 ~]$ :(){ :|:& };:    #注意{}两边空格
[]
[admin@reddhat6_155_200 ~]$ -bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用
-bash: fork: retry: 资源暂时不可用

centos6系统资源限制的更多相关文章

  1. Loadrunner 监控 Linux (centos6.5)服务器系统资源

    Loadrunner 监控 Linux 服务器系统资源,需要在被监控的服务器上启用 rstatd 进程但尝试启动时,爆炸了: [root@test1 rpc.rstatd-4.0.1]# rpc.rs ...

  2. CentOS6.5下docker的安装及遇到的问题和简单使用

    Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup实现了资源的独立,可以很轻松的实现文件.资 ...

  3. centos6.7下 编译安装MySQL5.7

    centos6.7下编译安装MySQL5.7 准备工作 #-----依赖包及MySQL和boost安装包----- #yum包安装: shell> yum -y install gcc-c++ ...

  4. centos6.5 64位静默安装oracle 10G R2

    操作系统:CentOS release 6.5 (Final) 64位 oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1 ...

  5. Centos6.5卸载图形化

    问题描述: Centos6.5想运行在非图形化状态,减小系统资源的开销!提升服务器性能....... 问题解决: 01.切换运行模式,变相实现非图形化运行 多用户模式 init 图形化模式 init ...

  6. 阿里云centos6.5实践编译安装LNMP架构web环境

    LNMP 代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. 本次测试需求: **实践centos6.5编译安装 LNMP生产环境 架构 web生产环境 使用 ngx_pa ...

  7. Linux运维二:CentOS6.6系统安装后的基本配置与优化

    CentOS6.6系统安装完成后还需要做一些配置与优化: 一:Linux内核版本号介绍 查看内核版本: [root@Gin scripts]# uname -r 2.6.32-504.el6.x86_ ...

  8. Centos6.5下Oracle 11g R2安装过程

    1准备 CentOS-6.5-x86_64-bin-DVD1 linux_11gR2_database_1of2 linux_11gR2_database_2of2 VMware Workstatio ...

  9. CentOS6下docker的安装和使用

    CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup ...

随机推荐

  1. vue-品牌管理案例

    品牌管理 分析 获取到 id 和 name ,直接从 data 上面获取 组织出一个对象 把这个对象,调用 数组的 相关方法,添加到 当前 data 上的 list 中 注意:在Vue中,已经实现了数 ...

  2. String trim() ,去除当前字符串两边的空白字符

    package seday01;/** * String trim() * 去除当前字符串两边的空白字符 * @author xingsir */public class TrimDemo { pub ...

  3. Java技巧——比较两个日期相差的天数

    Java技巧——比较两个日期相差的天数 摘要:本文主要记录了在Java里面如何判断两个日期相差的天数. 判断两个Date类型的日期之间的天数 通过计算毫秒数判断: public static void ...

  4. Xcode打印如下错误:Unbalanced calls to begin/end appearance transitions 解决办法

    今天在做自己的项目时遇到如下错误,项目运行以后,打印台打印如下: Unbalanced calls to begin/end appearance transitions for <HomeVi ...

  5. 深入理解JVM虚拟机(二):JDK 内存类的异常分析

    JVM数据存储 堆存储(Heap):对象存储,实际上就是JAVA的数据存储 方法堆栈(Method Stack):存储方法调用的关系. 永久代(Perm):在JDK1.6及之前,常量数据存储于此区域 ...

  6. oracle 死锁 锁

    [zhuan]今天看群里在讨论数据库死锁的问题,也一起研究了下,查了些资料在这里总结下. 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将 ...

  7. cin.get()解密

    最近在使用cin.get()函数时遇到了一个迷惑行为,现已解开. 一.cin.get()的用法 char ch; ch = cin.get(); //第1种用法 cin.get(ch); //第2种用 ...

  8. win10 anaconda3 python3.6安装tensorflow keras tensorflow_federated详细步骤及在jupyter notebook运行指定的conda虚拟环境

    本文链接:https://blog.csdn.net/weixin_44290661/article/details/1026789071. 安装tensorflow keras tensorflow ...

  9. [排序][链表]Leetcode147 对链表进行插入排序

    思路: 插入算法的思想很简单,此题比较为链表数据类型,方便的是不用一个一个的向后移动元素,但是找到应该插入的位置相对麻烦,因为链表只有next指针,无法快速定位要插入的位置.在链表前面插入一个空指针, ...

  10. GitHub如何配置SSH Key

    https://github.com/xiangshuo1992/preload.git git@github.com:xiangshuo1992/preload.git 这两个地址展示的是同一个项目 ...