我正在使用内核运行 CentOS 7 3.10.0-693.5.2.el7.x86_64。
我使用 cgroups 对进程应用内存限制。在应用程序滚动重启期间,内存限制加倍以适应内存需求。
但是有时在重新启动后无法将交换内存限制降低到原始值并且 cgroup 返回错误 write error: Device or resource busy
如
[root@us app]# echo "643825664" > memory.limit_in_bytes
[root@us app]# echo "673825664" > memory.memsw.limit_in_bytes
-bash: echo: write error: Device or resource busy
[root@us app]# echo "873825664" > memory.memsw.limit_in_bytes
[root@us app]#
Run Code Online (Sandbox Code Playgroud)
写入更大的值(例如 +200MB)似乎可以正常工作。
我还没有弄清楚为什么会发生这种情况。我在 cgroup 文档中没有找到任何涉及此错误的内容。我认为它必须在当前交换使用率高于限制的情况下做一些事情。
您对此类错误有任何经验吗?