使用 Linux cgroup2 控制 PostgreSQL 服务器的资源消耗

使用 Linux cgroup2 控制 PostgreSQL 服务器的资源消耗

💡 原文英文,约2200词,阅读约需8分钟。
📝

内容提要

多租户/共托是挑战性任务,运行多个PG实例可减少内部争用点,但可能导致吵闹的邻居效应。Linux的cgroups可控制资源消耗,cgroup2是版本一的替代品,解决了限制。创建单独的slice用于PostgreSQL实例是好主意,可从更高层次控制资源消耗。cgroup2非常灵活,是限制资源消耗的经过验证的方法。

🎯

关键要点

  • 多租户/共托环境面临挑战,多个PG实例可减少内部争用点,但可能导致吵闹的邻居效应。
  • Linux的cgroups可控制程序的资源消耗,cgroup2是cgroup版本1的替代品,解决了许多限制。
  • 使用cgroup2需要Linux内核版本5.2.0或更高,2022年或更高版本的Linux发行版通常支持cgroup2。
  • 检查Linux使用的cgroup版本的方法是查看/proc/mounts中的挂载数量。
  • 创建单独的slice用于PostgreSQL实例可以更好地控制资源消耗。
  • 可以通过systemctl命令创建和编辑PostgreSQL的slice,设置内存和CPU限制。
  • cgroup2允许在服务级别直接指定资源控制配置,适用于单个PostgreSQL实例。
  • 控制组广泛用于Docker和Kubernetes等程序,是限制资源消耗的有效方法。
  • 良好的资源使用控制可以改善多租户环境,防止吵闹的邻居效应。
  • 合理的资源控制可以防止系统过载导致的服务拒绝和不必要的故障转移。
➡️

继续阅读