linux里分组排序,在linux中进行进程分组(示例代码)

我最近看到一些关于systemd和cgroups进程管理的截屏视频,我对以下方面的区别感到有些困惑:

a)服务:在典型的Linux术语中,服务可以包含多个进程;属于同一服务的进程如何分组?根据什么惯例?

b)过程组:根据POSIX标准的典型过程分组

c)切片:systemd用于对资源分配/限制(以及其他)的服务(和范围)进行分组的概念

答案

您可以将切片视为“cgroups systemd方式”。默认情况下,每个服务都有自己的切片(使用systemd-cgls将其打印出来),在单元文件中,您可以自定义允许此特定单元的资源,例如,如果我打印nginx实例的状态:

● nginx.service - A high performance web server and a reverse proxy server

Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)

Active: active (running) since Tue 2015-01-27 19:41:23 EST; 22h ago

Main PID: 495 (nginx)

CGroup: /system.slice/nginx.service

├─495 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;

└─496 nginx: worker process

您可以看到此服务使用的相关Cgroup或“切片”。

为了自定义资源管理,你必须添加类似的东西

[Slice]

CPUShares=512

MemoryLimit=2G

内部单位失败,然后systemctl daemon-reload && systemctl restart nginx

您还可以组合切片以创建“服务数组”(询问您是否想要了解更多信息),这些服务将共享已定义的资源限制。这是一个.slice单位https://www.freedesktop.org/software/systemd/man/systemd.slice.html。基本上你创建一个.slice单元然后启动它并启用它并告诉其他服务在服务单元的“slice”部分内使用这个slice。

此外,有关控制资源调整的更多信息:qazxsw poi

编辑:

添加这些资源约束将限制nginx服务使用的资源,并且如果nginx由于DDOS或其他原因而变得疯狂,则可以保证其他服务的安全。

另一答案

让我试着澄清,因为你似乎在混合不同的术语。

进程组此术语未在cgroup中使用,您可能指的是“控制组”,它基本上是cgroup的缩写。我注意到有几个网站在实际上意味着控制组时错误地使用了进程组。

Cgroups使用以下术语:切片,范围,服务

切片这些是用于为资源管理创建cgroup层次结构的单元类型。默认情况下有三个切片:

system(默认包含启动过程)

用户(默认情况下包含用户会话)

机器(默认已创建但未使用并留给虚拟环境使用)

范围组织守护程序工作进程的组织单位。您可以将其视为“切片内的切片”。

服务由systemd控制的进程或进程组。基本上是您通过systemctl控制(停止/启动/状态)的过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值