CPU Throttling и Runqueue

Объём ресурсов, потребляемый контейнером, учитывается на уровне cgroup, к которой он относится. Контейнер состоит из одного или более процессов, а процесс — из одного или более тредов. Абстракцию можно углубить, разбивая тред на «зелёные потоки», в зависимости от рантайма это могут быть горутины (Golang), корутины (Kotlin/Python), виртуальные треды (Java) и другие. Но о «зелёных» потоках Linux не знает, для него единицей планирования является тред (в терминах ядра — task_struct). Именно он планируется, выполняется и вытесняется другими тредами для выполнения на CPU....

October 20, 2024 · 4 min