Linux限制磁盘与内存配额【超详细】

news2025/1/31 20:45:15

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!
我的主页:早九晚十二

文章目录

    • Linux限制磁盘用量的方式
      • 什么是磁盘配额
      • 磁盘配额的条件
      • 安装quota工具
      • 配额步骤
        • 新建一个磁盘分区
        • 新建/data目录并挂载
        • 新建临时用户,用于配置限额
        • 分区开启配额
        • 对磁盘配额
        • 查看磁盘配额
    • 内存限制方法
      • 编辑limits.conf配置文件
      • 退出终端重新登录查看结果

Linux内存主要用来存储系统和应用程序的指令,数据,缓存等。磁盘是主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。在一个linux操作系统中,内存和磁盘并不是无限制的,经常会遇到磁盘或者硬盘不足,影响了服务器功能。所以大家会尝试添加各种报警、监控等用于及时的了解到服务器的状况。
那么有没有办法,可以限制磁盘和硬盘的使用量呢?
答案是有的。

Linux限制磁盘用量的方式

什么是磁盘配额

磁盘配额即为quota,表示对用户和用户组使用磁盘空间和文件个数的限制,但是仅限定普通用户,对管理员无效。

磁盘配额的条件

内核必须支持磁盘配合,且安装quota管理工具。

查看内核是否支持磁盘配额,可以用grep命令

[root@test ~]# grep QUOTA /boot/config-3.10.0-1160.el7.x86_64 
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y

当grep出来的结果有CONFIG_XFS_QUOTA=y,即代表当前内核支持磁盘配额

安装quota工具

检查是否安装rpm -qa|grep quota,有输出结果代表已经安装。
未安装的话使用yum命令yum -y install quota

repquota(report quota),检查磁盘空间限制的状态。
edquota,是编辑用户或群组的quota。

配额步骤

新建一个磁盘分区

[root@test ~]# fdisk  /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (1,2,默认 1):
起始 扇区 (104857600-209715199,默认为 104857600):
将使用默认值 104857600
Last 扇区, +扇区 or +size{K,M,G} (104857600-209715199,默认为 209715199):
将使用默认值 209715199
分区 1 已设置为 Linux 类型,大小设为 50 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)

新建/data目录并挂载

[root@test ~]# mkdir /data
[root@test ~]# mount /dev/vda1  /data/
[root@test ~]# df -h /data/
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       296G   17G  267G   6% /dat

新建临时用户,用于配置限额

[root@test ~]# useradd test
[root@test ~]# passwd test
Changing password for user test.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@test ~]# cat /etc/passwd|grep test
test:x:1000:1000::/home/test:/bin/bash

分区开启配额

临时开启

[root@test ~]# mount -o remount,usrquota,grpquota /data/

永久开启(需重启机器)

[root@test ~]# echo "/dev/vda1 /data ext4 defaultsusrquota,grpquota 0 0 " >> /etc/fstab

对磁盘配额

#创建容量和文件数限制        
[root@test ~]# xfs_quota -x -c 'limit -u bsoft=10M bhard=20M isoft=6 ihard=8 test'  /data
#仅创建磁盘容量限制
[root@test ~]# xfs_quota -x -c 'limit -u bsoft=10M bhard=20M' /data
#仅创建磁盘文件数限制
[root@test ~]# xfs_quota -x -c 'limit -u isoft=6 ihard=8 test' /data       ###bsoft和isoft是限制容量   isoft和ihard是限制文件数

-x:表示启动专家模式,再当前模式下以允许对配额系统进行修改的所有管理命令可用
-c:表示直接调用管理命令
-u:指定用户账号对象
-g:指定组账号对象在这里插入代码片
bsoft:设置磁盘容量的软件限制数值
bhard:设置磁盘容量的硬限制数值
isoft:设置磁盘文件数的软限制数值
ihard:设置磁盘文件数的硬限制数值

查看磁盘配额

 #查看test磁盘:容量限制
[root@test ~]# xfs_quota  -c  'quota  -uv test' /data
#查看test磁盘:文件数限制
[root@test ~]#     xfs_quota -c ’quota -uv test‘ /data
 #查看全部
[root@test ~]#   xfs_quota -x -c "report -aibh"

内存限制方法

编辑limits.conf配置文件

[root@test data]# vim /etc/security/limits.conf 

#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#

#*               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

# End of file

root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535

例如限制每个用户的内存使用都不超过10G

* hard rss 10000000

在这里插入图片描述

限制test用户内存使用不超过10G

@test hard rss 10000000

在这里插入图片描述

(1) 加*号表示对所有用户起作用,加@test表示只对某个名叫test的用户起作用。
(2) hard说明是硬上限,你也可以改成soft,也即软上限。
(3) rss表示我们限制的是内存的使用量。
(4) 10000000(单位KB)表明我们限制的量大概是10GB。

退出终端重新登录查看结果

[root@test ~]# su test
[test@test root]$ ulimit  -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31200
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) 10000000
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

在这里插入图片描述
此时可以看到最大内存改成了我们设置的10000000KB,至此配置完成。

码字不易。如果文章对您有希望的话,请三连支持一波。
如有问题,欢迎留言,一起探讨,感谢。
也可关注下方公众号,看到留言后会第一时间回复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NVMe 原理 - 命令的处理

蛋蛋读NVMe之一 (ssdfans.com) NVMe 所处层次 NVMe是一种Host与SSD之间通讯的协议&#xff0c;它在协议栈中隶属高层。NVMe在协议栈中处于应用层或者命令层。 NVMe是为SSD所生的。NVMe出现之前&#xff0c;SSD绝大多数走的是AHCI和SATA的协议&#xff0c;后者其实是为传统HDD…

元宇宙产业委与中国传媒大学就“虚拟空间文化生产与管理微专业”课程深度合作

12月17日、18日两天下午&#xff0c;由中国移动通信联合会元宇宙产业工作委员会牵头&#xff0c;为中国传媒大学虚拟空间文化生产与管理微专业成功邀请5位行业内大咖级讲师&#xff0c;为校内、外在读本科生和研究生&#xff0c;以及对虚拟文化生产与管理感兴趣且获得学士学位的…

工控CTF之协议分析6——s7comm

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、IEC60870、…

windows下安装make,使用makefile文件

文章目录前言Makefile简介make作用安装make&#xff1a;1.windows上安装&#xff1a;chocolatey一、Chocolatey介绍二、Chocolatey安装安装make配置make连接前言 本人在学习go-micro中&#xff0c;用到Makefile&#xff0c;本人之前用过Makefile&#xff0c;但是不知道为什么这…

【蓝桥杯】第12届Scratch国赛中级组第1题 -- 文字特效

[导读]&#xff1a;蓝桥杯大赛是工业和信息化部人才交流中心举办的全国性专业信息技术赛事。蓝桥杯大赛首席专家倪光南院士说&#xff1a;“蓝桥杯以考促学&#xff0c;塑造了领跑全国的人才培养选拨模式&#xff0c;并获得了行业的深度认可。” 春雷课堂计划推出Scratch蓝桥杯…

红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

书接上回&#xff0c;前一篇我们在全平台构建好了Ruby3的开发环境&#xff0c;现在&#xff0c;可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术&#xff0c;编码就像跳舞一样&#xf…

工控CTF之协议分析3——IEC60870

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、IEC60870、…

关于要不要转行做程序员的问题

写在前边&#xff1a; 种一棵树&#xff0c;最好的时间是十年前&#xff0c;其次是现在。 什么时候开始都不晚。 这篇文章废话少说&#xff0c;我作为一个普通本科电气工程及其自动化专业的人转行作为Python程序员来说的经历到现在已经工作两年了&#xff0c;距离培训整整过…

LabVIEW使用硬件抽象层适应不同的接口

LabVIEW使用硬件抽象层适应不同的接口 在实验室工作时&#xff0c;拥有不同品牌/型号的各种设备&#xff0c;有时&#xff08;或多或少&#xff09;具有相同的目的。为了缩短开发时间&#xff0c;想创建一个硬件抽象层&#xff0c;允许使用所有相同类型的仪器&#xff0c;并具…

操作系统实验6:地址映射与共享

本次实践项目有两个基本内容&#xff1a; &#xff08;1&#xff09;用Bochs调试工具跟踪Linux-0.11的地址转换过程&#xff1b; &#xff08;2&#xff09;实现基于共享物理页框的进程间内存共享。 知识点补充 GDT和GDTR 和一个段有关的信息需要 8 个字节来描述&#xff0c…

【3D目标检测】Orthographic Feature Transform for Monocular 3D Object Detection

目录概述细节网络结构正交特征变换模块其余部分概述 本文是基于单目图像的3D目标检测方法。 【2018】【OFT-Net】 研究的问题&#xff1a; 在图像表示中&#xff0c;物体的比例会随着深度的变化而变化&#xff1b;物体的外观随着视点的不同而不同&#xff1b;物体的距离&…

看漫画也能学Python?小学生都能学会,《看漫画学python 2》PDF中文超清版,可分享

学习Python的小伙伴大部分应该都知道《看漫画学Python&#xff1a;有趣、有料、好玩、好用&#xff08;全彩版&#xff09;》这本书&#xff01; 《看漫画学Python》进阶版&#xff0c;在第1版的基础上讲解Python进阶知识&#xff0c;帮助读者完善Python知识体系&#xff0c;提…

点云Delaunay三角剖分(三维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 四面体网格是一种三维非结构化网格,它划分了一个三维域。这种类型的分区有许多有利的性质。例如,它很适合具有任意复杂几何结构的领域,它可以很容易地在局部细化和粗化(没有悬挂节点),并且它可以完全自动地创建…

GitHub上超强Python零基础入门学习资源,让你的学习事半功倍

根据2020年StackOverflow开发者调查报告&#xff0c;Python是世界上最受欢迎的语言之一&#xff0c;排名仅次于Rust和TypeScript。更令人惊讶的是&#xff0c;Python是开发人员最想尝试的语言。 如果你是一位使用Python的开发人员&#xff0c;而且希望提高自己的技术水平&…

【Numpy基础知识】使用genfromtxt导入数据

使用Numpy进行I/O操作 来源&#xff1a;Numpy官网&#xff1a;https://numpy.org/doc/stable/user/basics.html 文章目录使用Numpy进行I/O操作导包【1】定义输入【2】将行拆分为列【3】跳过行和选择列【4】选择数据类型【5】设置名称【6】调整转换【7】快捷键功能NumPy 提供了几…

JAVA面试(不同类型的公司特点)

工作那么多年面试过很多公司&#xff0c;同时也面试过很多求职者。作为一个JAVA程序员&#xff0c;10年风雨路&#xff0c;10年技术路&#xff0c;一路走来&#xff0c;实属不易&#xff0c;JAVA语言从诞生&#xff0c;到发展起来&#xff0c;到风靡全球&#xff0c;到如今的混…

java回顾:私服搭建

目录 一、搭建私服 1.1、搭建私服原因 1.2、nexus软件的安装 1.3、私服的使用 1.4、仓库介绍 1.5、从私服下载资源 1.6、下载失败 1.7、将资源上传到私服 1.7.1 问题 一、搭建私服 1.1、搭建私服原因 公司开发了jar包&#xff0c;可供其他项目组使用、无网络使用…

次世代培训——我们从游戏美术发展历程讲起

自90后们记忆最初的小霸王游戏算起&#xff0c;中国游戏大致经历了从像素时代-预渲染时代-初世代-中世代-次世代这样几个阶段的变革。有趣的是&#xff0c;当主机、PC游戏早已跨过了像素时代&#xff0c;手游的兴起和发展却依然要遵从这一发展规律从头开始&#xff0c;当人们已…

FineReport智能报表工具- CSS修改控件样式

1. 概述 1.1 使用场景 在实际项目中&#xff0c;为了让 FineReport 报表中的控件和页面风格一致&#xff0c; 可以通过 CSS 修改控件的显示样式。 如下图所示&#xff0c;希望参数面板上文本框控件的边框变为红色&#xff0c;字体颜色变为蓝色。 除更换控件字体、修改边框颜色…

从风控中那些被标准化定义的问题谈起

说到风控业务中被标准化的定义问题&#xff0c;作为风控人最应该来谈谈这个内容&#xff0c;尤其是在数字化的风控内容上。数字化风控的标准化程度较高&#xff0c;在互金经过了一番喷薄的发展后&#xff0c;对于SOP守则&#xff0c;业务问题的定义及留给后续从业者可借鉴的资料…