yosupo06 / library-checker-judge

https://judge.yosupo.jp/
Apache License 2.0
41 stars 22 forks source link

cpuset.cpus.partitionにisolatedを指定すると物故割れる #346

Closed yosupo06 closed 7 months ago

yosupo06 commented 1 year ago
root@dev-judge-instance-group-55d7:/home/yosupo# echo '2' > /sys/fs/cgroup/test.slice/cpuset.cpus
root@dev-judge-instance-group-55d7:/home/yosupo# echo 'isolated' > /sys/fs/cgroup/test.slice/cpuset.cpus.partition
root@dev-judge-instance-group-55d7:/home/yosupo# cat /sys/fs/cgroup/test.slice/cpuset.cpus.partition
isolated
root@dev-judge-instance-group-55d7:/home/yosupo# docker run --rm -it --runtime=runc --cgroup-parent test.slice ubuntu /bin/bash
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply cgroup configuration: unable to start unit "docker-0b06980bee2d0b77d6cc4d8c81e707f79ee394e9fc8fa65f99e7c13dc9ab4a2d.scope" (properties [{Name:Description Value:"libcontainer container 0b06980bee2d0b77d6cc4d8c81e707f79ee394e9fc8fa65f99e7c13dc9ab4a2d"} {Name:Slice Value:"test.slice"} {Name:Delegate Value:true} {Name:PIDs Value:@au [19494]} {Name:MemoryAccounting Value:true} {Name:CPUAccounting Value:true} {Name:IOAccounting Value:true} {Name:TasksAccounting Value:true} {Name:DefaultDependencies Value:false}]): error creating systemd unit `docker-0b06980bee2d0b77d6cc4d8c81e707f79ee394e9fc8fa65f99e7c13dc9ab4a2d.scope`: got `failed`: unknown.
yosupo06 commented 10 months ago

dockerを起動して失敗した後に改めてcpuset.cpuを指定しなおすと動きそうなことが分かった なぜ?

root@dev-judge-instance-group-jcmc:/home/yosupo# mkdir /sys/fs/cgroup/dev.slice
root@dev-judge-instance-group-jcmc:/home/yosupo# echo 'isolated' > /sys/fs/cgroup/dev.slice/cpuset.cpus.partition
root@dev-judge-instance-group-jcmc:/home/yosupo# echo '0' > /sys/fs/cgroup/dev.slice/cpuset.cpus
root@dev-judge-instance-group-jcmc:/home/yosupo# cat /sys/fs/cgroup/dev.slice/cpuset.cpus.partition
isolated
root@dev-judge-instance-group-jcmc:/home/yosupo# cat /sys/fs/cgroup/dev.slice/cpuset.cpus
0
root@dev-judge-instance-group-jcmc:/home/yosupo# docker run --cgroup-parent dev.slice --rm jojje/cloud-cpu-bench
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: error `creating` systemd unit `docker-bb086655760b0278a9b07429139ddf06ba10b60afebf37c80774a96ab36352f0.scope`: got `failed`: unknown.
root@dev-judge-instance-group-jcmc:/home/yosupo# cat /sys/fs/cgroup/dev.slice/cpuset.cpus.partition
isolated
root@dev-judge-instance-group-jcmc:/home/yosupo# cat /sys/fs/cgroup/dev.slice/cpuset.cpus

root@dev-judge-instance-group-jcmc:/home/yosupo# echo '0' > /sys/fs/cgroup/dev.slice/cpuset.cpus
root@dev-judge-instance-group-jcmc:/home/yosupo# docker run --cgroup-parent dev.slice --rm jojje/cloud-cpu-bench
Capping to 1. Use -f to override.
117M
117M
yosupo06 commented 9 months ago

なんか確率で成功したりしなかったり…

yosupo06 commented 9 months ago

https://github.com/containerd/containerd/issues/9160

厄介なの踏んだかも トホホ

yosupo06 commented 9 months ago

https://stackoverflow.com/questions/43794169/docker-change-cgroup-driver-to-systemd

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

cgroupdriverをcgroupfsにしたら動いてるかも?