做本地婚恋网站温州城乡建设官网
- 作者: 多梦笔记
- 时间: 2026年02月16日 22:41
当前位置: 首页 > news >正文
做本地婚恋网站,温州城乡建设官网,做电影网站会有什么惩罚,海尔集团企业网站建设分析上一篇#xff1a;容器化和虚拟化 什么是cgroups#xff1f; cgroups是Linux内核中的一项功能#xff0c;最初由Google的工程师提出#xff0c;后来被整合进Linux内核; 它允许用户将一系列系统任务及其子任务整合或分隔到按资源划分等级的不同组内#xff0c;从而为系统…上一篇容器化和虚拟化 什么是cgroups cgroups是Linux内核中的一项功能最初由Google的工程师提出后来被整合进Linux内核; 它允许用户将一系列系统任务及其子任务整合或分隔到按资源划分等级的不同组内从而为系统资源管理提供一个统一的框架。 基本功能 资源限制cgroups可以对进程组使用的资源进行限制如CPU时间、内存使用量、I/O带宽等。一旦进程组使用的资源达到限额再申请资源时可能会受到限制或触发相应的错误处理机制如OOMOut of Memory。优先级控制通过cgroups用户可以为进程组分配特定的CPU份额从而控制其运行的优先级。资源记录cgoups还可以记录进程组使用的资源数量如CPU时间、内存使用量等便于用户进行监控和分析。进程组隔离使用cgroups用户可以使不同的进程组使用不同的命名空间namespace以达到隔离的目的。不同的进程组将有各自的进程、网络、文件系统挂载空间等。进程组控制cgroups提供了对进程组的控制功能如挂起、恢复等。 组成结构 任务Task在cgroups中任务就是系统的一个进程。一个进程可以加入到某个cgroup中也可以从一个cgroup迁移到另一个cgroup。控制族群Control Groupcgroup表示按某种资源控制标准划分而成的任务组包含一个或多个子系统。cgroups中的资源控制都是以控制族群为单位实现的。层级Hierarchycgroups具有层次结构类似于文件系统的层次树。每个cgroup可以包含多个子CGroup资源控制是自上而下继承的。层级中的cgroup节点可以包含零个或多个子节点子节点继承父节点挂载的子系统。子系统Subsystem一个子系统就是一个资源调度控制器又称controllers如CPU子系统可以控制CPU的时间分配内存子系统可以限制内存的使用量。子系统必须附加到一个层级上才能起作用一个子系统附加到某个层级以后这个层级上的所有cgroup都受到这个子系统的控制。 为什么使用cgroups 它能够对cpu、内存等资源做到精细的控制目前的轻量级容器Docker和k8s就是使用了cgroup提供的资源限制能力对cpu、内存等资源进行资源控制。 比如要使用内存的时候假如全部有2G内存我们能够根据我们的需求具体分配出400m内存出来供资源使用达到上限时就会触发OOM cgroups控制子系统 名称功能blkio对块设备的 IO 进行限制cpu限制 CPU 时间片的分配cpuacct生成 cgroup 中的任务占用 CPU 资源的报告与 cpu 挂载在同一目录cpuset给 cgroup 中的任务分配独立的 CPU(多处理器系统) 和内存节点devices限制设备文件的创建和对设备文件的读写memory对 cgroup 中的任务的可用内存进行限制并自动生成资源占用报告freezer暂停/恢复 cgroup 中的任务hugetlb限制使用的内存页数量perf_event允许 perf 观测 cgroup 中的 taskpids限制任务的数量rdma限制 RDMA 资源(Remote Direct Memory Access远程直接数据存取) 命令pidstat pidstat是Linux系统中的一个性能分析工具它属于sysstat套件的一部分。这个命令可以用来监控特定进程或所有进程的CPU使用率、内存使用情况、I/O活动以及上下文切换等资源使用状况。 基本语法 pidstat [options] [interval] [count]interval指定两次采样之间的间隔时间单位为秒。count可选参数用于指定要显示统计信息的次数。 关键参数 -u默认参数显示每个进程的CPU利用率用户空间、内核空间。-r显示每个进程的内存使用情况包括页面错误minflt/majflt和虚拟内存大小VSZ及实际使用的物理内存RSS。-d显示每个进程的磁盘I/O统计如读写操作的数量和带宽。-w显示每个进程的上下文切换次数自愿和非自愿。-p PID监视指定PID的进程。-t包含线程级别的统计信息。 如 每2秒输出一次所有进程的CPU和内存使用情况 pidstat -ru 2监视PID为1234的进程的CPU、内存和磁盘I/O并每隔5秒输出一次 pidstat -urd 5 -p 1234显示特定进程及其线程的CPU使用率 pidstat -ut 1 -p process_id命令stress stress命令是一个用于对Linux系统进行压力测试的工具它可以模拟多种类型的负载包括CPU、内存、磁盘、网络等。 基本语法 stress [OPTION [ARG]]-c ,–cpu N模拟N个CPU核心的负载。-m –vm N模拟N个虚拟内存设备的负载。–vm-bytes B指定每个虚拟内存设备的大小为B单位可以是K、M、G。-i, –io N模拟N个磁盘I/O操作的负载注意在某些版本中这个选项可能被–hdd替代。-t, –timeout T指定压力测试运行T秒后自动停止。 例如 监控压力测试进程每两秒监控一次 pidstat-C stress-p ALL-u2 10000压力测试cpu stress-c 1通过pidstat监控看到 压力测试IOsystem资源会被占用 stress-i 1压力测试内存虚拟内存是不变的而真实内存是不断变化的 因为需要不断进行数据交换 stress-m –vm-bytes 50m压力进程的写入能力测试 stress -d 1 cgroups信息查看 版本查看 cat /proc/filesystems | grep cg如果看到 cgroup2表示支持cgroup v2 子系统查看 cat /proc/cgroupscgroup 挂载信息查看 mount | grep cgroup显示当前挂载的文件系统这些行显示了不同的cgroup子系统是如何挂载到文件系统中的 tmpfs是一种基于内存的文件系统这里它被用来挂载cgroup的根目录。 cgroup类型表示这是一个cgroup挂载点后面的参数如namesystemd指定了cgroup子系统的名称。 显示当前shell进程所属的cgroup控制组信息 ll /sys/fs/cgroup/memory/user.slice当使用了systemd作为初始化系统init system时/sys/fs/cgroup/目录下会包含各种cgroup控制组子系统的挂载点。 user.slice是systemd用来管理用户会话的一个cgroup层级它包含了所有用户级别的进程和服务。 查看该目录下的文件 这些文件允许你读取或设置cgroup的内存限制和统计信息。 使用cgroups对内存的控制 先进入到内存控制目录 cd/sys/fs/cgroup/memory创建一个测试目录并进入 mkdir test_memlimit cd test_memlimit内存限制文件已经自动在新目录中建立; 更改内存最大限制为20M: echo 20971520 memory.limit_in_bytes开启对内存的监控和压力测试: pidstat -C stress -p ALL -r 2 10000 stress -m 1 –vm-bytes 50m将stress进程放入cgroup策略中: echo 3605712 tasks进程无法申请到足够的内存而退出. 使用cgroups对cpu进行控制 mount | grep cg创建测试目录并进入 mkdir test_cpu cd test_cpu开启cpu压力测试并监控: stress -c 1 pidstat -C stress -p ALL-u 2 10000cpu_period_us:表示cpu可以使用的带宽默认值是100000 cpu_quota_us:表示cgroup可以使用的带宽-1表示CPU不受cgroup的限制 我们将cpu_quota_us/cpu_period_us就能表示cpu的利用率 将cpu利用率改到20%: echo 20000 cpu.cfs_quota_us将进程放入tasks进行控制: echo 3615387 taskscpu利用率变为20%
- 上一篇: 做背景图获取网站高德地图海外能用吗
- 下一篇: 做本地生活网站设计说明500字通用
