云时代【4】—— 资源隔离与控制技术

云时代【4】—— 资源隔离与控制技术

  • 二、资源隔离与控制技术
    • (一)NameSpace
      • 1. 基本介绍
      • 2. 相关 Linux 指令
      • 实战1:隔离进程
      • 实战2:隔离文件系统
    • (二)CGroups
      • 1. 基本介绍
      • 2. 相关 Linux 指令
      • 实战1:cgroups 信息查看
      • 实战2:使用 cgroups 对内存进行控制
      • 实战3:使用 cgroups 对 cpu 进行控制

二、资源隔离与控制技术

创建好虚拟机之后,查看 虚拟机 自身的信息

# 该指令是 两个指令的合体
cat /etc/*release*

image.png
image.png

(一)NameSpace

1. 基本介绍

NameSpace 是 Linux 内核用来隔离内核资源的方式。通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在
Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的 进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。

2. 相关 Linux 指令

(1)dd – 复制文件,根据操作数进行转换和格式化

dd if=/dev/zero of=test.img bs=8k count=1024# /dev/zero 产生连续不断的空白字符流

image.png
image.png

**(2)mkfs – **Make a Linux filesystem.

mkfs -t ext4 ./test.img

image.png

(3)df – 查看文件系统的相关信息
Show information about the file system on which each FILE resides, or all file systems by default.

df

image.png

df -a # -a, --all 查看所有具有 0Bloeks 的文件系统

image.png

df -h # 人类可读的格式

image.png

df -t tmpfs # 列出 tmpfs 类型的文件系统

image.png

df -T # 现实文件系统的形式

image.png

image.png

**(4)unshare – **与父进程进行命名空间的隔离

ll /proc # /proc 是一个虚拟文件系统

image.png

unshare -u /bin/bash # 不共享用户的命名空间hostname testhostname # 通过hostname,可以唯一地标识计算机的位置

image.png

(5)mount – Mount a filesystem
挂载就是:文件的入口

dd if=/dev/zero of=test.img bs=8k count=1024

image.png

mkfs -t ext4 ./test.img# -t 知道文件系统类型

image.png

mount ./test.img /data/testmount

image.png

cd /data/testmymount
echo "hello world" > text.txt
ll -h
cat text.txt

image.png

实战1:隔离进程

**Q1:需要指定子进程 **
当直接 -p 之后 /bin/bash进程 与 父进程完成资源隔离。内部的/bin/bash进程没有自己的父进程,且无法看到外部的父进程,因此报错。

unshare -p /bin/bash

image.png

Q2:当执行ps -ef时发现 PID 依然可以查看到。原因是:**ll /proc**** 下有全部的进程,因此需要提前把 **/proc** 挂载过去**

unshare -p --fork /bin/bash

image.png

unshare -p --fork --mount-proc /bin/bash
ls -l /proc

image.png

ps -ef # ps 是“process status”的缩写,它用于显示当前系统上运行的进程的状态信息。
# -e参数表示显示所有进程,
# -f参数表示全格式显示。

image.png

实战2:隔离文件系统

mkdir -p /data/mymount

image.png

unshare --mount --fork /bin/bash

image.png

dd if=/dev/zero of=/data.img bs=8k count=10240

image.png

mkfs -t ext4 ./data.img

image.png

df -h

image.png

mount -t ext4 ./data.img /data/mymount

image.png

hostnamedf -h

image.png

(二)CGroups

1. 基本介绍

CGroups(Control Groups)是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供统一的框架。简单说,CGroups 可以限制、记录任务组所使用的物理资源。本质上来说,cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。

2. 相关 Linux 指令

**(1)pidstat – **查看各种资源信息

pidstat -u # 显示各个进程CPU使用情况(-u 为默认参数)

image.png

pidstat -r # 现实各进程的内存使用情况

image.png

pidstat -d # 显示各进程的 IO 使用情况

image.png

pidtest -p 1480 # 显示该进程号的资源使用情况

image.png

pidtstat -p 1480pidstat -r -p 1480pidstat -d -p 1480

image.png

image.png

**(2)stress – **压力工具

stress -c 1 # 产生N个进程,每个进程循环调用 sqrt函数 产生CPU压力

image.png

stress -i 1 # 产生N个进程,每个进程循环调用sync将内存缓冲区内容写到磁盘上,产生IO压力。
# 通过系统调用sync刷新内存缓冲区数据到磁盘中,以确保同步。
# 如果缓冲区内数据较少,写到磁盘中的数据也较少,不会产生IO压力。
# 在SSD磁盘环境中尤为明显,很可能iowait总是0,却因为大量调用系统调用sync,导致系统CPU使用率sys升高。

image.png

stress -m 1 --vm-bytes 50m
# -m : 产生N个进程,每个进程循环调用malloc/free函数分配和释放内存。
# --vm-bytes B : 指定分配内存的大小

image.png

stress -d 1 # N:产生N个不断执行write和unlink函数的进程(创建文件,写入内容,删除文件)

image.png

stress -d 1 -t 3
# -t : 在N秒后结束程序
stress -d 1 -t 3 -q
# -q : 程序在运行的过程中不输出信息

image.png

实战1:cgroups 信息查看

cat /proc/filesystems | cg

image.png

cat /proc/cgroups

image.png

mount | grep cgroupll /sys/fs/cgroup/cpu,cpuacct

image.png

查看一个进程上的 cgroup 限制

# $$ 代表当前进程的PID
cat /proc/$$/cgroup mount | grep cgroup# 控制组下的cpu文件 /sys/fs/cgroup/cpu,cpuacct
# 具体进程的cpu控制文件位置 /user.slice
ll /sys/fs/cgroup/cpu,cpuacct/user.slice

image.png
image.png

实战2:使用 cgroups 对内存进行控制

mount | grep cgroupscd /sys/fs/cgroup/memoryll

image.png

mkdir test-memlimitcd /test-memlimitls -l # 自动将配置信息初始化好

image.png

echo "20971520" > memory.limit_in_bytescat memory.limit_in_bytes

image.png

stress -m 1 --vm-bytes 50m

image.png

pidstat -C stress -P ALL -r 2 100000

image.png

echo "xxxx" > tasks

实战3:使用 cgroups 对 cpu 进行控制

cd /sys/fs/cgroup/cpu,cpuacctmkdir test-cpulimitll

image.png

stress -c 1

image.png

pidstat -u -C stress -p ALL 1 100000

image.png

cat cpu.cfs_period_uscat cpu.cfs_quota_usecho "20000" > cpu.cfs_quota_uscat cpu.cfs_quota_us

image.png

echo "xxxxx" > tasks

image.png
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xilinix 的硬件资源分布

从官方手册UG475中可以看出,下图中的V690T系列的i芯片,其具有的bank数量,已经上下半区的bufg对应的bank关系,实际在开发过程中,可能面临局部资源集中度过高,导致bufg的数量不够的情况,bufg的位置…

(转载)SpringCloud 微服务(三)-Seata解决分布式事务问题

ps:这个原文写的很好,怕后续这个地址失效,备份一个留着自己学习 转自:SpringCloud 微服务(三)-Seata解决分布式事务问题_seata 黑马 代码-CSDN博客 看完了黑马程序员的免费课程,感觉受益匪浅,…

为什么香港成为黄金交易的热门地?

香港作为一个国际金融中心,吸引了大量的黄金交易活动。这里汇聚了众多财富和机会,引发了人们对黄金交易和实体黄金的兴趣。那么,为什么那么多人爱去香港买黄金?让我们一起来探索黄金交易的魅力。 首先,香港以其优越的地…

2.2_1 调度的概念、层次

文章目录 2.2_1 调度的概念、层次(一)调度的基本概念(二)调度的三个层次——高级调度(作业调度)(三)调度的三个层次——低级调度(进程调度/处理机调度)&#…

就业班 2401--2.28 Linux Day7--存储管理1

一 .存储管理 主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID 初识硬盘 机械 HDD 固态 SSD SSD的优势 SSD采用电子存储介质进行数据存储和读取的一种技术,拥有极高的存储性能,被认为是存储技术发展的未来新星。 与传统硬盘相比&#…

映客星耀夜见证荣耀时刻,我与五个女博士的‘时光宝盒

身为一个长期关注健康和美丽的我,当看到“五个女博士”作为特约合作伙伴亮相2023映客直播年度盛典时,内心充满了喜悦和期待。这不仅是因为我对五个女博士品牌的深厚感情,更是因为我看到了品牌对健康与美丽的坚持和追求。 盛典当晚&#xff0c…

【C语言】while循环语句

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

品味Fendi Club啤酒与韩式烤肉的异域风情

当Fendi Club啤酒遇上韩式烤肉,仿佛打开了一扇通往异域风味的大门。让我们一起领略这一与众不同的味觉之旅。 Fendi Club啤酒,以其醇厚的口感和淡淡的麦芽香气而著称。这款啤酒在酿造过程中采用了特别的工艺,使得酒体呈现出诱人的金黄色&…

压力测试工具Jmeter的下载与使用

1、进入官网下载Jmeter https://jmeter.apache.org/ 国内镜像(下载的慢的话可以用国内镜像下载) https://mirrors.cloud.tencent.com/apache/jmeter/binaries/ 2、跳转到下载页面 3、根据不同系统下载相应版本的Jmeter压缩包,Linux系统下载…

【IEEEE会议征稿】第六届下一代数据驱动网络国际学术会议(NGDN 2024)

第六届下一代数据驱动网络国际学术会议(NGDN 2024) The Sixth International Conference on Next Generation Data-driven Networks 基于前几届在英国埃克塞特 (ISPA 2020) 、中国沈阳 (TrustCom 2021) 和中国武汉(IEEETrustCom-2022)成功举办的经验&a…

系统规划与管理师 2023年 综合知识

1、香农用概率来定量描述信息的公式如下,其中H(x)表示X的(),Pi是()出现第i种状态的() A 信息熵 事件 概率 B 总熵 单位 概率 C 信息熵 单位 概率 D 总熵 单位 度量 答案:A 2、 以信息化规划需求调研、现状分析为基础,采取()的方式,建…

PCB:多CAN口的信号转接板

背景 在测试多路CAN口时,需要频繁更换接口引脚,从而接入CAN收发器。为了提升测试效率,可以设计一个简易多路CAN收发器转接板。PCB板子一端是40脚母口,另一端是10路CAN螺钉式接线端子,自带电池减少接线。 分配空闲时间…