/ ์ข ๋ฅ์ ๋ฒ๊ทธ
์ด๊ฒ์ Kubernets ๊ทธ ์์ฒด์ ๋ฒ๊ทธ๊ฐ ์๋๋๋ค.
์ด ํ๋ฅญํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฝ์์ต๋๋ค.
๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ k8s๊ฐ cfs ํ ๋น๋์ ์ฌ์ฉํ์ฌ CPU ์ ํ์ ์ ์ฉํ๊ณ ์์์ ์๊ฒ๋์์ต๋๋ค. ๋ถํํ๋, ํนํ ์ ํ๋ํ๋ ํ ๋ํธ์ ๊ฒฝ์ฐ ๋ถํ์ํ ์ ํ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
๋ด๊ฐ ์ ์ ์ ์ ์ ์ถ ํ Linux ์ปค๋์ ํด๊ฒฐ๋์ง ์์ ๋ฒ๊ทธ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณต๊ฐ ๋ฐ ์ค๋จ ๋ ํจ์น๊ฐ ์์ต๋๋ค (์๋ํ๋์ง ํ์ธํ์ง ์์์ต๋๋ค).
cc @connorDoyle @balajismaniam
/ sig ๋
ธ๋
/ ์ข
๋ฅ์ ๋ฒ๊ทธ
# 51135์ ์ค๋ณต์ธ๊ฐ์?
์ ์ ์ ์ผ๋ก๋ ๋น์ทํ์ง๋ง CFS ์ฟผํฐ ๊ธฐ๊ฐ์ ์ผ๋ถ ๊ตฌ์ฑ ์ ์ถฉ๋ณด๋ค๋ ์ปค๋์ ์ค์ ๋ฒ๊ทธ๊ฐ ์๋ค๋ ์ฌ์ค์ ๋์น ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ฌ๋๋ค์๊ฒ ๋ ๋ง์ ๋งฅ๋ฝ์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ๊ธฐ # 51135๋ฅผ ์ข์ํ์ต๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ํ ์ด๊ฒ์ด CFS ํ ๋น๋ ( --cpu-cfs-quota=false
)์ ๋นํ์ฑํํ๊ฑฐ๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋ ๋ค๋ฅธ ์ด์ ์
๋๋ค (# 63437).
๋ํ์ด ์์ (์ปค๋ ํจ์น์์ ๋งํฌ ๋จ)์ด ๋งค์ฐ ํฅ๋ฏธ ๋กญ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค (์ํฅ์ ์ธก์ ํ๊ธฐ ์ํด) : https://gist.github.com/bobrik/2030ff040fad360327a5fab7a09c4ff1
cc @adityakali
ํ ๋น๋์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ kubelet์ด ํ์ดํผ ์ค๋ ๋๋ฅผ "cpus"๋ก ๊ณ์ฐํ๋ค๋ ๊ฒ์
๋๋ค. ํด๋ฌ์คํฐ๊ฐ ๋๋ฌด๋ก๋๋์ด ๋ ์ค๋ ๋๊ฐ ๋์ผํ ์ฝ์ด์ ์์ฝ๋๊ณ ํ๋ก์ธ์ค์ CPU ํ ๋น๋ ํ ๋น๋์ด์๋ ๊ฒฝ์ฐ ๊ทธ์ค ํ๋๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ์์ ๋ถ๋ถ์ผ๋ก ๋ง ์ํ๋ฉ๋๋ค (๋ค๋ฅธ ์ค๋ ๋์์๋ ์์
์ด์์ ๋๋ง ์ํ๋ฉ๋๋ค). ์คํจ) ๊ทธ๋ฌ๋ ์์ฒด์ ์ผ๋ก ๋ฌผ๋ฆฌ์ ์ฝ์ด๊ฐ์๋ ๊ฒ์ฒ๋ผ ์ฌ์ ํ ํ ๋น๋์ ์๋นํฉ๋๋ค. ๋ฐ๋ผ์ ํจ์ฌ ๋ ๋ง์ ์์
์ ์ํํ์ง ์๊ณ ๋ ํ ๋น๋์ ๋ ๋ฐฐ๋ก ์๋นํฉ๋๋ค.
์ด๋ ํ์ดํผ ์ค๋ ๋ฉ์ด ํ์ฑํ ๋ ์์ ํ๋ก๋ ๋ ๋
ธ๋ ๋
ธ๋์์ ์ฑ๋ฅ์ด ํ์ดํผ ์ค๋ ๋ฉ ๋๋ ํ ๋น๋ ๋นํ์ฑํ ์ํ์ ์ ๋ฐ์ด๋๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
Imo the kubelet์ ์ด๋ฌํ ์ํฉ์ ํผํ๊ธฐ ์ํด ํ์ดํผ ์ค๋ ๋๋ฅผ ์ค์ CPU๋ก ๊ฐ์ฃผํด์๋ ์๋ฉ๋๋ค.
@juliantaylor # 51135์์ ์ธ๊ธํ๋ฏ์ด CPU ํ ๋น๋์ ๋๋ ๊ฒ์ด ์ ๋ขฐํ ์์๋ ์ํฌ๋ก๋๋ฅผ ์คํํ๋ ๋๋ถ๋ถ์ k8s ํด๋ฌ์คํฐ์ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ ์ผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ฒ๊ทธ๋ก ๊ฐ์ฃผ๋ฉ๋๊น?
์ผ๋ถ ํฌ๋๊ฐ CPU ์ ํ์ ์ค์ ๋ก ์๋ชจํ์ง ์๋ ๋์ ์ค๋กํ ๋ง๋๋ฉด ๋ฒ๊ทธ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
๋ด ํด๋ฌ์คํฐ์์ ๋๋ถ๋ถ์ ํ ๋น๋ ์ด๊ณผ ํฌ๋๋ ๋ฉํธ๋ฆญ (heapster, metrics-collector, node-exporter ...) ๋๋ ์ฐ์ฐ์์ ๊ด๋ จ์ด ์์ต๋๋ค.์ด ์ฐ์ฐ์๋ ๋ถ๋ช ํ ์ฌ๊ธฐ์์ ๋ฌธ์ ๊ฐ๋๋ ์ข ๋ฅ์ ์ํฌ๋ก๋๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ๋งค๋ฒ ํํดํ๊ธฐ ์ํด ์๊ฐ์ ๋ณด๋ด๊ณ ์ผ์ด๋์ญ์์ค.
์ฌ๊ธฐ์ ์ด์ํ ์ ์ 40m
์์ 100m
๋๋ 200m
์ ํ์ ๋์ด๋ ค๊ณ ํ์ง๋ง ํ๋ก์ธ์ค๊ฐ ์ฌ์ ํ ์ ํ๋์๋ค๋ ๊ฒ์
๋๋ค.
์ด ์ ํ์ ํธ๋ฆฌ๊ฑฐ ํ ์์๋ ์ํฌ๋ก๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ค๋ฅธ ๋ฉํธ๋ฆญ์ ๋ณผ ์ ์์ต๋๋ค.
์ง๊ธ์์ด ํฌ๋์ ๋ํ ์ ํ์ ์ ๊ฑฐํ์ต๋๋ค ... ์ ์ ์ข์์ง๊ณ ์์ง๋ง, ์ ๋ง ๋ฒ๊ทธ์ฒ๋ผ ๋ค๋ฆฌ๋ฉฐ Limits
๋นํ์ฑํํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ์๋ฃจ์
์ ์ ๊ณตํด์ผํฉ๋๋ค.
@ prune998 ์ @vishh ์ ์ฝ๋ฉํธ ์์ด ์์ ์ ์ฐธ์กฐํ์ญ์์ค : ์ปค๋์ ์ํ์์ ๊ทธ๋ ๊ฒํด์๋ ์๋๋ค๊ณ ํ๋๋ผ๋ ์ง๋์น๊ฒ ๊ณต๊ฒฉ์ ์ผ๋ก ์ ํํฉ๋๋ค. ์ฐ๋ฆฌ (Zalando)๋ ํด๋ฌ์คํฐ์์ CFS ํ ๋น๋ (CPU ์กฐ์ )์ ๋นํ์ฑํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. https://www.slideshare.net/try_except_/optimizing-kubernetes-resource-requestslimits-for-costefficiency-and-latency-highload
๊ฐ์ฌํฉ๋๋ค @hjacobs.
Google GKE๋ฅผ ์ฌ์ฉ ์ค์ด๋ฉฐ ์ฌ์ฉ ์ค์งํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ง๋ง ๊ณ์ ๊ฒ์ํฉ๋๋ค ....
@ prune998 AFAIK, Google์ ์์ง ํ์ํ ์์ก์ด๋ฅผ ๋ ธ์ถํ์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ์คํธ๋ฆผ์ ์ฐฉ๋ฅ ํ CFS๋ฅผ ๋นํ์ฑํ ํ ๊ฐ๋ฅ์ฑ์ด์๋ ์งํ ๊ธฐ๋ฅ ์์ฒญ์ ์ ์ถํ์ผ๋ฉฐ ๊ทธ ์ดํ๋ก ์์์ ๋ฃ์ง ๋ชปํ์ต๋๋ค.
Google GKE๋ฅผ ์ฌ์ฉ ์ค์ด๋ฉฐ ์ฌ์ฉ ์ค์งํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ง๋ง ๊ณ์ ๊ฒ์ํฉ๋๋ค ....
๋น๋ถ๊ฐ ์ปจํ ์ด๋์์ CPU ์ ํ์ ์ ๊ฑฐ ํ ์ ์์ต๋๊น?
CPU ๊ด๋ฆฌ์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด CFS quota is not used to bound the CPU usage of these containers as their usage is bound by the scheduling domain itself.
ํ์ง๋ง CFS ์ค๋กํ ๋ง์ด ๋ฐ์ํ๊ณ ์์ต๋๋ค.
์ด๋ ๋ณด์ฅ ๋ QoS ํด๋์ค๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด CPU ์ ํ์ ์ค์ ํ๋ฉด ์ค๋กํ ๋ง์ผ๋ก ์ธํ ๋ชจ๋ ์ด์ ์ ๋ฌดํจํํ๋ฏ๋ก ์ ์ CPU ๊ด๋ฆฌ์๋ ๋๋ถ๋ถ ๋ฌด์๋ฏธํฉ๋๋ค.
์ ์ CPU์ ํฌ๋์ ๋ํด CFS ํ ๋น๋์ด ์ ํ ์ค์ ๋์ง ์์ ๋ฒ๊ทธ์ ๋๊น?
์ถ๊ฐ ์ปจํ ์คํธ (์ด์ ๋ฐฐ์ ์) : @hrzbrg (MyTaxi)๊ฐ Kops์ ํ๋๊ทธ๋ฅผ ์ ๊ณตํ์ฌ CPU ์กฐ์ ์ ๋นํ์ฑํํ์ต๋๋ค : https://github.com/kubernetes/kops/issues/5826
์ฌ๊ธฐ์ ๋ฌธ์ ์์ฝ์ ๊ณต์ ํ์ญ์์ค. ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ค ์๋๋ฆฌ์ค์์ ์ฌ์ฉ์๊ฐ ์ํฅ์ ๋ฐ๋์ง, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ํํ ๋ฌด์์ด ํ์ํ์ง ๋ช ํํ์ง ์์ต๋๋ค.
ํ์ฌ ์ฐ๋ฆฌ์ ์ดํด๋ ์ฐ๋ฆฌ๊ฐ ํ๊ณ๋ฅผ ๋์์ ๋ ์ฐ๋ฆฌ๋ ํจ๋ํฐ๋ฅผ ๋ฐ๊ณ ์ ํ์๋ฐ์ต๋๋ค. ๋ฐ๋ผ์ CPU ํ ๋น๋์ด 3 ์ฝ์ด์ด๊ณ ์ฒ์ 5ms ๋์ 3 ์ฝ์ด๋ฅผ ์๋น ํ ๋ค์ 100ms ์ฌ๋ผ์ด์ค์์ 95ms ๋์ ์ ํ์ ๋ฐ๊ฒ๋๋ฉฐ์ด 95ms์์๋ ์ปจํ ์ด๋๊ฐ ์๋ฌด๊ฒ๋ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ CPU ์ฌ์ฉ๋ ๋ฉํธ๋ฆญ์ CPU ์คํ์ดํฌ๊ฐ ํ์๋์ง ์๋ ๊ฒฝ์ฐ์๋ ์ค๋กํ ๋ง๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค. CPU ์ฌ์ฉ๋์ ์ธก์ ํ๋ ์๊ฐ์ด ์ด ๋จ์์ด๊ณ ์กฐ์ ์ด ๋ง์ดํฌ๋ก ์ด ์์ค์์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ํ๊ท ๊ฐ์ ๋ด๊ณ ๋ณด์ด์ง ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ์ธ๊ธ ๋ ๋ฒ๊ทธ๋ ์ฐ๋ฆฌ๋ฅผ ํผ๋์ค๋ฝ๊ฒํ์ต๋๋ค.
๋ช ๊ฐ์ง ์ง๋ฌธ :
์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ๋ชจ๋ ์ปจํ ์ด๋๊ฐ 100 % CPU ์ ํ์ ๋ฐ์ต๋๊น?
์ด ๋ฒ๊ทธ๊ฐ ๋ ธ๋์์ ํธ๋ฆฌ๊ฑฐ๋๋ ์์ธ์ ๋ฌด์์ ๋๊น?
limits
์ฌ์ฉํ์ง ์๋ ๊ฒ๊ณผ cpu.cfs_quota
์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ฐจ์ด์ ์ ๋ฌด์์
๋๊น?
๋ฒ์คํธ ๊ฐ๋ฅํ ํฌ๋๊ฐ ๋ง๊ณ ํ๋์ ํฌ๋๊ฐ ๋
ธ๋์ ๋ถ์์ ์ฑ์ ์ ๋ฐํ๊ณ ์์ฒญ์ ํตํด ์คํ์ค์ธ ๋ค๋ฅธ ํฌ๋์ ์ํฅ์ ๋ฏธ์น ์์๋ ๊ฒฝ์ฐ limits
๋นํ์ฑํํ๋ฉด ์ํํ ์๋ฃจ์
์ด๋์ง ์์ต๋๊น?
๋ณ๋๋ก, ์ปค๋ ๋ฌธ์ ํ๋ก์ธ์ค์ ๋ฐ๋ผ ๋ถ๋ชจ ํ ๋น๋์ด ์์ ํ ์๋น๋๋ฉด ์ ํ ๋ ์ ์์ต๋๋ค. ์ปจํ
์ด๋ ์ปจํ
์คํธ์์ ๋ถ๋ชจ๋ ๋ฌด์์
๋๊น (์ด ๋ฒ๊ทธ์ ๊ด๋ จ์ด ์์ต๋๊น)? https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt
There are two ways in which a group may become throttled:
a. it fully consumes its own quota within a period
b. a parent's quota is fully consumed within its period
์ฐ๋ฆฌ๋ ์๋นํ ํฐ ์ค๋จ์ ์ง๋ฉดํ์ผ๋ฉฐ ๋ชจ๋ ํฌ๋๊ฐ ์ค๋กํ ๋ง ์ฌ์์ ๋ฃจํ์ ๊ฐํ ํ์ฅ ํ ์์๋ ๊ฒ๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค (๊ทผ๋ณธ ์์ธ์ ์๋์ง๋ผ๋). ์ค์ ๋ฌธ์ ๋ฅผ ์ฐพ๊ธฐ ์ํด ์ธ๋ถ ์ฌํญ์ ํํค ์น๊ณ ์์ต๋๋ค. ์ค๋จ์ ๋ํด ์์ธํ ์ค๋ช ํ๋ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์์ํ๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ์ ๋์์ ์ฃผ์๋ฉด ๋๋จํ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
cc @justinsb
์ฌ์ฉ์ ์ค ํ ๋ช ์ด CPU ์ ํ์ ์ค์ ํ๊ณ ํ์ฑ ํ๋ก๋ธ ์๊ฐ์ ์ด๊ณผํ์ฌ ์๋น์ค๊ฐ ์ค๋จ๋์์ต๋๋ค.
์ปจํ ์ด๋๋ฅผ CPU์ ๊ณ ์ ํ ๋๋ ์ค๋กํ ๋ง์ด ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด CPU ์ ํ์ด 1์ด๊ณ ํด๋น ์ปจํ ์ด๋๊ฐ ํ๋์ CPU์์๋ง ์คํ๋๋๋ก ๊ณ ์ ํฉ๋๋ค. ํ ๋น๋์ด ์ ํํ ๋ณด์ ํ CPU ์์ธ ๊ฒฝ์ฐ ์ฃผ์ด์ง ๊ธฐ๊ฐ ๋์ ํ ๋น๋์ ์ด๊ณผ ํ ์ ์์ง๋ง ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ํ์ด ์์ต๋๋ค.
๋๋ ์ปค๋ 4.18์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ์ด๋๊ฐ์ ๊ฒ์ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์์ง ํ ์คํธํ์ง ์์์ผ๋ฏ๋ก ๋๊ตฐ๊ฐ ํ์ธํ ์ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
4.18์ https://github.com/torvalds/linux/commit/512ac999d2755d2b7109e996a76b6fb8b888631d ๊ฐ์ด ๋ฌธ์ ์ ๋ํ ๊ด๋ จ ํจ์น ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@mariusgrigoriu https://github.com/kubernetes/kubernetes/issues/67577#issuecomment -462534360์์ ์ค๋ช ํ ๊ฒ๊ณผ ๋์ผํ ์์๊ป๋ผ์ ๊ฐํ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
CPUManager ์ ์ ์ ์ฑ ์ ์ฌ์ฉํ๋ Guaranteed QoS ํด๋์ค์ ํฌ๋์์ CPU ์ค๋กํ ๋ง์ ๊ด์ฐฐํฉ๋๋ค (๋ง์ด ์๋๋ ๊ฒ ๊ฐ์).
์ด๋ฌํ Pod์ ๋ํด limits
๋ฅผ ์ ๊ฑฐํ๋ฉด Burstable QoS ํด๋์ค์ ๋ฐฐ์น๋๋ฉฐ, ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ด ์๋๋ฏ๋ก ๋จ์ ์ ์ผํ ์ต์
์ ์์คํ
์ ์ฒด์์ CFS cpu ํ ๋น๋์ ๋นํ์ฑํํ๋ ๊ฒ์
๋๋ค. ๋ฐ์ธ๋ฉ๋์ง ์์ CPU ์ฉ๋์ ๋ํ ๋ชจ๋ Pod ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ฉด ์ํํ CPU ํฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์์ ์ํฉ์์ @vishh , ์ต์ ์ ์กฐ์น๋ ๋ฌด์์ ๋๊น? ์ปค๋> 4.18 (cfs cpu ๊ณ์ ์์ ์ด ์์)๋ก ์ ๊ทธ๋ ์ด๋ํ๊ณ (์๋ง๋) cfs ํ ๋น ๊ธฐ๊ฐ์ ์ค์ด๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ํ๋๋ ์ปจํ
์ด๋์์ limits
๋ง ์ ๊ฑฐํ๋ฉด ๋ช
ํํ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
1) ์ด๊ฒ์ด ๋ณด์ฅ ๋ QoS ํด๋์ค์ ํฌ๋์ด๊ณ ์ ์ ์ฝ์ด ์ ๋ฐ CPUMnanager ์ ์ ์ ์ฑ
์ด ์ ์ฉ๋ ๊ฒฝ์ฐ- ์ด๋ฌํ ํฌ๋๋ ๋ฒ์คํธ ๊ฐ๋ฅํ QoS ํด๋์ค์ ๋ฐฐ์น
2) ์ด๋ฌํ ํฌ๋๋ ์๋น ํ ์์๋ CPU์ ์๊ณผ ๊ด๋ จํ์ฌ ์ ํ์ด ์์ผ๋ฉฐ ์ ์ฌ์ ์ผ๋ก ํน์ ์ํฉ์์ ์๋นํ ํผํด๋ฅผ ์
ํ ์ ์์ต๋๋ค.
๊ทํ์ ์๊ฒฌ / ์๋ด๋ ๋งค์ฐ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ปค๋์ ์ ๊ทธ๋ ์ด๋ํ๋ฉด ํ์คํ ๋์์ด๋์ง๋ง CFS ํ ๋น๋์ ์ ์ฉํ๋ ๋์์ ์ฌ์ ํ โโ๋ฌธ์์์ ์ ์ํ๋ ๊ฒ๊ณผ ์ผ์นํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ง๊ธ์ด ๋ฌธ์ ์ ๋ค์ํ ์ธก๋ฉด์ ์กฐ์ฌ ํด์๋ค. ๋ด ์ฐ๊ตฌ๋ LKML์ ๋ํ ๋ด ๊ฒ์๋ฌผ์ ์์ฝ๋์ด ์์ต๋๋ค.
https://lkml.org/lkml/2019/3/18/706
์ฆ, ์ฌ๊ธฐ์ 512ac99 ์ด์ ์ปค๋์ ์ค๋ช
๋ ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ 512ac99 ์ดํ ์ปค๋์์ ์ฑ๋ฅ ํ๊ท๋ฅผ ๋ณด์์ต๋๋ค. ๊ทธ๋์ ๊ทธ ์์ ์ ๋ง๋ณ ํต์น์ฝ์ด ์๋๋๋ค.
๊ฐ์ฌ @mariusgrigoriu, ์ฐ๋ฆฌ๊ฐ ์ ๊ทธ๋ ์ด๋ ๋ค์ ๋์์ด ๋ ๊ฒ์ ๋๋ค ํฌ๋ง ์ปค๋์ ์ํด ๊ฐ๊ณ ์๋ค, ๋ํ ์ฒดํฌ ์์ https://github.com/kubernetes/kubernetes/issues/70585 - ํ ๋น๋์ด ์ฐธ์ cpuset์ ๋ณด์ฅ ํฌ๋ (์ค์ ๋๋ ๊ฒ ๊ฐ๋ค ์ฆ ๊ณ ์ cpus), ๊ทธ๋์ ์ด๊ฒ์ ๋์๊ฒ ๋ฒ๊ทธ์ฒ๋ผ ๋ณด์ ๋๋ค.
@chiluk ์ข ๋ ์์ธํ
512ac99 ์ปค๋ ํจ์น๋ ์ผ๋ถ ์ฌ๋๋ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง๋ง ๊ตฌ์ฑ์ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ์ต๋๋ค. ํจ์น๋ ์๊ฐ ์กฐ๊ฐ์ด cfs_rq๊ฐ์ ๋ถ๋ฐฐ๋๋ ๋ฐฉ์์ ์์ ํ์ฌ ์ด์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ฃ๋ฉ๋๋ค. ์ด์ ์๋ ๋ง๋ฃ๋์ง ์์์ต๋๋ค.
ํนํ ์ฝ์ด ์๊ฐ ๋ง์ ๋จธ์ ์์ Java ์ํฌ๋ก๋๋ ์ฐจ๋จ ์์ ์ ์ค๋ ๋๋ก ์ธํด CPU ์ฌ์ฉ๋์ด ์ ์ ๋ง์ ์ค๋กํ ๋ง์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค๋ ๋์๋ ๋์ค์ ๋ง๋ฃ๋๋ ์ผ๋ถ๋ง ์ฌ์ฉํ๋ ์๊ฐ ์กฐ๊ฐ์ด ํ ๋น๋ฉ๋๋ค. ๋ด๊ฐ ์์ฑํ ํฉ์ฑ ํ ์คํธ์์ * (ํด๋น ์ค๋ ๋์ ์ฐ๊ฒฐ๋จ) ์ฝ 30 ๋ฐฐ์ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ค์ ์ฑ๋ฅ์์ ์ฐ๋ฆฌ๋ ์ฆ๊ฐ ๋ ์ค๋กํ ๋ง์ผ๋ก ์ธํด ๋ ์ปค๋ ๊ฐ์ ์๋ต ์๊ฐ์ด ์๋ฐฑ ๋ฐ๋ฆฌ ์ด ๊ฐ์ํ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
4.19.30 ์ปค๋์ ์ฌ์ฉํ๋ฉด ์ค๋กํ ๋ง์ ์ค ์ด๊ธธ ๋ฐ๋ฌ๋ ํฌ๋๊ฐ ์ฌ์ ํ ์ค๋กํ ๋ง๋๊ณ ์ด์ ์ ์ค๋กํ ๋ง๋์ง ์์๋ ์ผ๋ถ ํฌ๋๊ฐ ์ด์ ์๋นํ ์ฌ๊ฐํ๊ฒ ์ค๋กํ ๋ง๋๊ณ ์์์ ์ ์ ์์ต๋๋ค (kube2iam์ ์ธ์คํด์ค๊ฐ ๊ฐ๋ ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์ด๊ฐ ์ค๋กํ ๋ง๋์๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค. , ์ด๋ป๊ฒ ๋ )
CoreOS 4.19.25-coreos์์ Prometheus๊ฐ ์์คํ ์ ๊ฑฐ์ ๋ชจ๋ ๋จ์ผ ํฌ๋์์ CPUThrottlingHigh ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
@williamsandrew @teralype ์ด๊ฒ์ @chiluk ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ํ ๋ด๋ถ ๋
ผ์๋ฅผ ๊ฑฐ์ณ ์ค์ ๋ก cfs ํ ๋น๋์ ์์ ํ ๋นํ์ฑํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค (kubelet์ ํ๋๊ทธ --cpu-cfs-quota=false
). ์ด๊ฒ์ Burstable ๋ฐ Guaranteed (cpu ๊ณ ์ ๋๋ ํ์ค) ํฌ๋ ๋ชจ๋์ ๋ํด ๊ฒช์๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ ๋ํ ํ๋ฅญํ ๋ฑ (๋ฐ ๊ธฐํ ๋ช ๊ฐ์ง ์ฃผ์ )์ด ์ฌ๊ธฐ์ ์์ต๋๋ค : https://www.slideshare.net/try_except_/ensuring-kubernetes-cost-efficiency-across-many-clusters-devops-gathering-2019
์ ๊ทน ๊ถ์ฅ๋๋ ์ฝ๊ธฐ : +1 :
์ฅ๊ธฐ ๋ฐํ (์์ ์๊ฒ ๋ฉ๋ชจ)
์์ ์ฑ ์ ์ํด ์ฐ๊ฒฐ๋ ํ ํฌ ๋ ๋ นํ ๋ ๋น๋์ค๋ก๋ ์ ๊ณต๋ฉ๋๋ค : https://www.youtube.com/watch?v=4QyecOoPsGU
@hjacobs , ์ด์ผ๊ธฐ๋ฅผ ์ข์ํ์ต๋๋ค! ๊ฐ์ฌํฉ๋๋ค ...
์ด ์์ ์ฌํญ์ AKS ๋๋ GKE์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ญ๋๊น?
๊ฐ์ฌ
@agolomoodysaada ์ฐ๋ฆฌ๋ ์ผ๋ง ์ ์ GKE์ ๊ธฐ๋ฅ ์์ฒญ์ ์ ์ถํ์ต๋๋ค. ์ํ๊ฐ ๋ฌด์์ธ์ง ํ์คํ์ง ์์ ๋ ์ด์ GKE๋ฅผ ์ง์ค์ ์ผ๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค.
Azure ์ง์์ ์ฐ๋ฝํ๋๋ฐ 2019 ๋ 8 ์๊ฒฝ๊น์ง๋ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋งํ์ต๋๋ค.
ํ์ ๋์ ์ผ๊ด๋๊ฒ ์กฐ์ ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ทธ๋ํ๋ฅผ ๊ณต์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ด๋ค ์ปค๋์ ์์์ต๋๊น?
" chiluk "4.15.0-1037-azure "
๊ทธ๋์ ๊ทธ๊ฒ์ ์ปค๋ ์ปค๋ฐ 512ac99๋ฅผ ํฌํจํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ ์์ํ๋
์ถ์ฒ.
https://kernel.ubuntu.com/git/kernel-ppa/mirror/ubuntu-azure-xenial.git/tree/kernel/sched/fair.c?h=Ubuntu-azure-4.15.0-1037.39_16.04.1 & id = 19b0066cc4829f45321a52a802b640bab14d0f67
์ฆ, 512ac99์ ์ค๋ช
๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ํ๊ณ ์๋ค
512ac99๋ ์ฐ๋ฆฌ์๊ฒ ๋ค๋ฅธ ํ๊ท๋ฅผ ๊ฐ์ ธ ์์ต๋๋ค.
2019 ๋
4 ์ 5 ์ผ ๊ธ์์ผ ์คํ 12:08 Moody Saada [email protected]
์ผ๋ค :
@chiluk https://github.com/chiluk "4.15.0-1037-azure"
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/kubernetes/kubernetes/issues/67577#issuecomment-480350946 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ACDI05YeS6wfUE9XkiMbxrLvPllYQZ7Iks5vd4MOgaJpZM4WDUF3
.
๋๋ ์ด์ ์ด๊ฒ์ ๋ํด LKML์ ํจ์น๋ฅผ ๊ฒ์ํ์ต๋๋ค.
https://lkml.org/lkml/2019/4/10/1068
์ถ๊ฐ ํ ์คํธ๋ฅผ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ฌธ์ ๋ณ๊ฒฝ๊ณผ ํจ๊ป์ด ํจ์น๋ฅผ ๋ค์ ์ ์ถํ์ต๋๋ค.
https://lkml.org/lkml/2019/5/17/581
์ฌ๋๋ค์ด ์ด๋ฌํ ํจ์น๋ฅผ ํ ์คํธํ๊ณ LKML์ ์ค๋ ๋์ ๋ํด ๋๊ธ์ ๋ฌ ์ ์๋ค๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค. ํ์ฌ ์ ๋ LKML์ ๋ํด ์ธ๊ธ ํ ์ ์ผํ ์ฌ๋์ด๋ฉฐ ์ปค๋ฎค๋ํฐ ๋ ์ ์ง ๊ด๋ฆฌ์๋ก๋ถํฐ ์ด๋ค ์๊ฒฌ๋๋ฐ์ง ๋ชปํ์ต๋๋ค. ๋ด ํจ์น์์ LKML์ ๋ํ ์ปค๋ฎค๋ํฐ ํ ์คํธ์ ๋ ผํ์ ์ป์ ์ ์๋ค๋ฉด ์ ๋ง ๋จผ ๊ธธ์ ๊ฐ ๊ฒ์ ๋๋ค.
๊ฐ์น๊ฐ์๋์ด ํน์ ํ๋ก์ ํธ https://github.com/tensorflow/serving ์์ด ๋ฌธ์ ๋ก ์ธํด ์ฌ๊ฐํ ์ํฅ์๋ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋๋ถ๋ถ C ++ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
@chiluk , ํจ์น๊ฐ ์ถ์๋๋ ๋์ ์ ์ฉ ํ ์์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ฐ์ฌํฉ๋๋ค
@chiluk ๊ฐ์ด ์ปค๋ ๋ฒ๊ทธ๊ฐ Kubernetes ๋ฐ CFS ํ ๋น๋์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋์ ๋ฏธ์น๋ ์ฌ๊ฐํ ์ํฅ์ ๋ํ ์ธ์ฉ๋ฌธ์ ์์งํ๋๋ก
Zolando๋ ์ง๋์ฃผ ํ๋ ์ ํ
์ด์
์์ ํ์ฌ ์ปค๋์ ๋ํ ๋์ ๊ฒฝํ์ CFS ํ ๋น๋์ ํ์ฌ์ ๋ชจ๋ฒ ์ฌ๋ก๋ก ๋นํ์ฑํํ๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ๋งํ์ต๋๋ค.
https://www.youtube.com/watch?v=6sDTB4eV4F8
์ ์ ๋ ๋ง์ ํ์ฌ๊ฐ mytaxi, Datadog, Zalando์ ๊ฐ์ CPU ์ค๋กํ ๋ง์ ๋นํ์ฑํํ๊ณ ์์ต๋๋ค. ( Twitter ์ค๋ ๋ )
@derekwaynecarr @ dchen1107 @ kubernetes / sig-node-feature-requests Dawn, Derek, ๊ธฐ๋ณธ๊ฐ์ ๋ณ๊ฒฝํ ๋์ ๋๊น? ๋ฐ / ๋๋ ๋ฌธ์?
์ @whereisaaron ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ํํ๋ ๋ณด๊ณ ์๋ฅผ ์์ง ๋ฐ ๊ณต์ ํ๊ณ , ๋์ ๋์์ผ๋ก ์ธํด ๊บผ์ง๋ ๊ฒฝ์ฐ ์ ์ ํ ๊ฒฝ์ฐ lkml ์ค๋ ๋์ ์ฐธ์ฌํ๋ ๊ฒ์ ํ์ํฉ๋๋ค. ํ์ฌ๋ก์๋ ์ปค๋ ์ปค๋ฎค๋ํฐ์์ด ๋ฌธ์ ์ ๋ํด ๋ถ๋ง์ ์ ๊ธฐํ๋ ๊ฒ์ด ๋๋ถ๋ถ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@agolomoodysaada ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ผ์์ ์ผ๋ก cfs ํ ๋น๋์ ๋นํ์ฑํํ๊ฑฐ๋ ์ํฅ์๋ฐ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ cpu ํ ๋น๋์ ๊ณผ๋ํ๊ฒ ํ ๋นํ๋ ๊ฒ์ ๋๋ค.
๋ํ ๋์์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ค๋ ๋ ์๋ฅผ ์ค์ด๋ ๋ชจ๋ฒ ์ฌ๋ก๋ ์์ต๋๋ค.
golang์ ๊ฒฝ์ฐ GOMAXPROCS ~ = ceil (quota)
Java์ ๊ฒฝ์ฐ CPU ํ ๋น๋ ์ ํ์ ์ธ์ํ๊ณ ์ค์ํ๋ ์ต์ JVM์ผ๋ก ์ด๋ํ์ญ์์ค. ์ด์ jvms๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ ์์๋ ์ฝ์ด ์๊ฐ ์๋๋ผ CPU ์ฝ์ด ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ ๋๋ฅผ ์์ฑํ์ต๋๋ค.
์ด ๋ ๊ฐ์ง ๋ชจ๋ ์ฑ๋ฅ์ ํฐ ๋์์ด๋์์ต๋๋ค.
๊ฐ๋ฐ์๊ฐ ํ ๋น๋์ ์กฐ์ ํ ์ ์๋๋ก ์ ํ์ ๋๋ฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ณด๊ณ ํฉ๋๋ค.
์ฐธ๊ณ ๋ก,์ด ์ค๋ ๋๋ฅผ Azure AKS ์ง์์ ์ง์ ํ ํ, ๊ธฐ๊ปํด์ผ 9 ์ ๋ง์ ์ปค๋ 5.0์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ ๋ ํจ์น๊ฐ ์ถ์ ๋ ๊ฒ์ด๋ผ๋ ๋ต๋ณ์ ๋ฐ์์ต๋๋ค.
๊ทธ๋๊น์ง๋ ์ ํ ์ฌ์ฉ์ ์ค์งํ์ญ์์ค. :)
@ prune998 CPUmanager๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฝ๊ฐ์์ฃผ์ ์ฌํญ์ด ์์ต๋๋ค (์ฆ, ๋ณด์ฅ ๋ QoS์์ ํฌ๋์ ์ ์ฉ CPU ํ ๋น).
์ ํ์ ์ ๊ฑฐํ๋ฉด CFS ์กฐ์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ง๋ง ๋ณด์ฅ ๋ QoS์์ ํฌ๋๋ฅผ ์ ๊ฑฐํ์ฌ CPUmanager๊ฐ ๋ ์ด์ ์ด๋ฌํ ํฌ๋์ ์ ์ฉ ์ฝ์ด๋ฅผ ํ ๋นํ์ง ์์ต๋๋ค.
CPUmanager๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ-์๋ฌด๋ฐ ํด๋ฅผ ๋ผ์น ์ง ์์ง๋ง์ด ๋ฐฉํฅ์ ์ ํํ๋ ์ฌ๋์๊ฒ๋ ์ฐธ๊ณ ๋กํ์ญ์์ค.
์ ์ฉ CPU๊ฐ์๋ ํฌ๋์ ๋ํด CFS ํ ๋น๋์ ์์ ํ ๋นํ์ฑํํ๋ PR (https://github.com/kubernetes/kubernetes/issues/70585)์ด ์์ง๋ง ์์ง ๋ณํฉ๋์ง ์์์ต๋๋ค.
๋ํ ์์์ ์ ์ํ๋๋ก CFS ํ ๋น๋ ์์คํ ์ ์ฒด๋ฅผ ๋นํ์ฑํํ๋๋ก ์ ํํ์ผ๋ฉฐ ์ง๊ธ๊น์ง๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@ dannyk81 https://github.com/kubernetes/kubernetes/issues/70585 ๋ ๋ณํฉ ํ ์์๋ PR์ด ์๋๋๋ค (์ฝ๋ ์ค ๋ํซ ๋ฌธ์ ). ๊ทํ (๋๋ ๋ค๋ฅธ ์ฌ๋)๊ฐ PR์ ์ ์ถํ ์ ์์ต๋๊น?
์ด๋ฏธ ํ๋ ์์ต๋๋ค : https://github.com/kubernetes/kubernetes/pull/75682
@dims ๋๋ ๋ฌธ์ ๊ฐ ์๋ PR์ ์ฐ๊ฒฐ ...ํ์ง๋ง ๋ฌธ์ ๋ PR์ ์ฐ๊ฒฐ๋์ด :) ์ค์ ๋ก ๊ทธ๊ฒ์ด https://github.com/kubernetes/kubernetes/pull/75682 ํ๊ณ ์ ์ ๋์ ๊ฑฐ๊ธฐ์ ๋งค๋ฌ๋ ค๋์ด์์ด, ๊ทธ๋์ ์ด๊ฒ์ด ์ ๋ง๋ก ์ฑ๊ฐ์ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ๋น์ ์ด ์ด๊ฒ์ ๋ฐ ์ ์๋ค๋ฉด ์ด๊ฒ์ ์ข์ ๊ฒ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค : +1 :
์์ค! ๊ฐ์ฌํฉ๋๋ค @ dannyk81 ๋๋ ์ฌ๋๋ค์ ํ ๋นํ๊ณ ์ด์ ํ๋ฅผ ์ถ๊ฐํ์ต๋๋ค
FWIW์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ CFS ํ ๋น๋ ๊ธฐ๊ฐ์ ๊ธฐ๋ณธ 100ms๊ฐ ์๋ 10ms๋ก ์ค์ด๋ฉด ํ ์ผ ์๋ ๋๊ธฐ ์๊ฐ์ด ํฌ๊ฒ ํฅ์๋๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ปค๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ฌ์ฉํ์ง ์์ผ๋ฉด ํจ์ฌ ์ ์ ์์ ํ ๋น๋์ด ๋ญ๋น๋๊ณ ํ๋ก์ธ์ค๊ฐ ๋ ๋ง์ ํ ๋น๋ (์์ ํ ๋น๋์ผ๋ก)์ ๋ ๋นจ๋ฆฌ ์ป์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ผ ๋ฟ์ด์ง ๋ง CFS ํ ๋น๋์ ์์ ํ ๋นํ์ฑํํ์ง ์์ผ๋ ค๋ ์ฌ๋๋ค์๊ฒ๋ ์์ ์ฌํญ์ด ๊ตฌํ ๋ ๋๊น์ง ๋ฐ์ฐฝ๊ณ ๊ฐ ๋ ์ ์์ต๋๋ค. k8s๋ 1.12์์ cpuCFSQuotaPeriod ๊ธฐ๋ฅ ๊ฒ์ดํธ ๋ฐ --cpu-cfs-quota-period kubelet ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ์ด ์์ ์ ์ง์ํฉ๋๋ค.
ํ์ธํด์ผํ์ง๋ง ์ฝ๋์ ์ฌ๋ผ์ด์ค ์ต์๊ฐ๊ณผ ํ ๋น๋ ์ต์๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๊ฐ์ ๊ทธ๋ ๊ฒ ์ค์ด๋ฉด ํจ๊ณผ์ ์ผ๋ก ๋นํ์ฑํ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ ๋น๋์ ํด์ ํ๊ณ ์ํํธ ํ ๋น๋์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@chiluk ๋ด ํ์ ๋์ ์ดํด๋ ๊ธฐ๋ณธ ์ฌ๋ผ์ด์ค๊ฐ 5ms์ด๋ฏ๋ก ๊ทธ ์ดํ๋ก ์ค์ ํ๋ฉด ์ฌ์ค์ ๋นํ์ฑํ๋์ง๋ง ๊ธฐ๊ฐ์ด 5ms๋ฅผ ์ด๊ณผํ๋ ํ ์ฌ์ ํ ํ ๋น๋ ์ ์ฉ์ด ์์ด์ผํฉ๋๋ค. ์ ํํ์ง ์์ ๊ฒฝ์ฐ ํ์คํ ์๋ ค์ฃผ์ธ์.
--feature-gates=CustomCPUCFSQuotaPeriod=true --cpu-cfs-quota-period=10ms
์ผ๋ก ๋ด ํฌ๋ ์ค ํ๋๊ฐ ์์ํ๋ ๋ฐ ์ ๋ง ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ์ฒจ๋ถ ๋ prometheus ๊ทธ๋ํ์์ ์ปจํ
์ด๋๋ ์์์ ์๋ํ๊ณ ์ฃฝ์ ๋๊น์ง ํ์ฑ ์ํ ํ์ธ์ ๊ฑฐ์ ์ถฉ์กฑํ์ง ๋ชปํฉ๋๋ค (์ผ๋ฐ์ ์ผ๋ก ์ปจํ
์ด๋๋ ์ฝ 5 ์ด ์์ ์์๋ฉ๋๋ค. ์ฌ์ง์ด ํ์ฑ ์ํ๋ฅผ initialDelaySeconds๋ฅผ 60 ์ด๋ก ๋๋ ค๋ ๋์์ด๋์ง ์์์ต๋๋ค). ๊ทธ๋ฐ ๋ค์ ์ ๊ฒ์ผ๋ก ๊ต์ฒด๋ฉ๋๋ค.
kubelet ์ธ์์์ cpu-cfs-quota-period๋ฅผ ์ ๊ฑฐ ํ ๋๊น์ง ์ปจํ ์ด๋๊ฐ ํฌ๊ฒ ์ ํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.์ด ์์ ์์ ์ ํ์ด ํจ์ฌ ๋ ํํ ํด์ง๊ณ ์ปจํ ์ด๋๊ฐ ์ฝ 5 ์ด ํ์ ๋ค์ ์์๋ฉ๋๋ค.
์ฐธ๊ณ : CPU ์ค๋กํ ๋ง ๋นํ์ฑํ ์ฃผ์ ์ ๋ํ ํ์ฌ ํธ์ํฐ ์ค๋ ๋ : https://twitter.com/it_supertramp/status/1133648291332263936
๋ค์์ ์ง์ฐ ์๊ฐ์ ๋ฏผ๊ฐํ ์๋น์ค 2 ๊ฐ์ ๋ํด ํ๋ก๋์
์์ --cpu-cfs-quota-period=10ms
๋ก ์ด์ ํ๊ธฐ ์ / ํ์ CPU ์ ํ ๊ทธ๋ํ์
๋๋ค.
์ด๋ฌํ ์๋น์ค๋ ๋ค์ํ ์ธ์คํด์ค ์ ํ์์ ์คํ๋ฉ๋๋ค (ํ์ธ / ๋ด์ฑ). ๋ ๋ฒ์งธ ์๋น์ค์ ์ธ์คํด์ค๋ ๋จผ์ ๋ฎ์ CFS ํ ๋น๋ ๊ธฐ๊ฐ์ผ๋ก ์ด๋๋์์ต๋๋ค.
๊ฒฐ๊ณผ๋ ๋ถํ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ ธ์ผํฉ๋๋ค.
@ d-shi ๊ทธ๋ํ์ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๋ค. ๊ธฐ๊ฐ์ด ๋๋ฌด ์งง๊ธฐ ๋๋ฌธ์ ์ง๊ธ ๋น์ ์ด ํ๊ฒฉํ๊ณ ์๋ ์ต์ ํ ๋น๋์ด์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ธํ๋ ค๋ฉด ์ฝ๋๋ฅผ ํ์ธํด์ผํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์์๋ ํ ๋น๋์ ์ค์๋ก ๋ ๋ ธ์ต๋๋ค. ์ค์ ๋ก ํ ๋น๋์ ๋๋ ค์ ๋์ผํ ์์ ์ ์ํ ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ์๊ฒ๋ ์ค๋กํ ๋ง๋ณด๋ค๋ ์ง์ฐ ์๊ฐ์ ์ธก์ ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ ์ฉํ์ต๋๋ค. cfs-quota
๋นํ์ฑํํ๋ฉด ๋๊ธฐ ์๊ฐ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. cfs-quota-period
๋ณ๊ฒฝ์ ๋ํ ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ ์ถ์ต๋๋ค.
@chiluk ์ฐ๋ฆฌ๋ ์ค์ ๋ก ํ ๋น๋์
@blakebarnett ์ฐ๋ฆฌ๋ ์ง์ฐ ์๊ฐ์ ์ธก์ ํ๋ ๋ฒค์น ๋งํฌ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ์ผ๋ฉฐ, 10ms-100ms ๋ฒ์์์ --cpu-cfs-quota-period
์
๋ฐ์ดํธ ์ ํ๊ท ์ฝ 18ms์์ ํ๊ท 10ms-20ms ๋ฒ์๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ๊ทธ ํ ์ฝ 11ms. p99 ์ง์ฐ ์๊ฐ์ ์ฝ 98ms์์ 20ms๋ก ์ฆ๊ฐํ์ต๋๋ค.
ํธ์ง์ : ๋ค์ ๋์๊ฐ์ ๋ด ๋ฒํธ๋ฅผ ๋ค์ ํ์ธํด์ผํ๋ ํธ์ง์ ๋ํด ์ฃ์กํฉ๋๋ค.
@ d-shi, ๋น์ ์ ์๋ง๋ 512ac999๋ก ํด๊ฒฐ ๋ ๋ฌธ์ ์ ๋ถ๋ชํ์ ๊ฒ์ ๋๋ค.
@chiluk ์ฌ๋ฌ๋ถ์ ํจ์น๋ฅผ ๋ช ๋ฒ์ด๊ณ ์ฝ์ ํ,์ด ์ฝ๋์ ์ํฅ์ ์ดํดํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์์ ์ธ์ ํฉ๋๋ค.
if (cfs_rq->expires_seq == cfs_b->expires_seq) {
- /* extend local deadline, drift is bounded above by 2 ticks */
- cfs_rq->runtime_expires += TICK_NSEC;
- } else {
- /* global deadline is ahead, expiration has passed */
- cfs_rq->runtime_remaining = 0;
- }
runtime_remaining์ด ๊ธ๋ก๋ฒ ํ์์ ์ผ๋ง ๋์ ๋น๋ ค๋ ํ ๋น๋์ด ๋ง๋ฃ๋๋ ๊ฒฝ์ฐ. ์ต์
์ ๊ฒฝ์ฐ sched_cfs_bandwidth_slice_us์ ๋ฐ๋ผ 5ms ๋์ ์ ํ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ต๋๊น?
๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น ๊ฑด๊ฐ์?
@chiluk ๊ทธ๋ ๋ด๊ฐ ์ณ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ์ ํ๋ก๋์ ์๋ฒ๋ ์ฌ์ ํ ์ปค๋ 4.4์ ์์ผ๋ฏ๋ก ์์ ํ์ง ๋ง์ญ์์ค. ์๋ง๋ ์๋ก์ด ์ปค๋๋ก ์ ๊ทธ๋ ์ด๋ํ๋ฉด CFS ํ ๋น๋ ๊ธฐ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๋๋ฆด ์ ์์ง๋ง, ํ์ฌ๋ก์๋ ํ ์ผ ์๋ ์ง์ฐ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ์์ง ๋ถ์์ฉ์ ๋ฐ๊ฒฌํ์ง ๋ชปํ์ต๋๋ค. ๋จ ๋ช ์ฃผ ๋์ ๋ง ๋ผ์ด๋ธ๋์์ต๋๋ค.
@chiluk ์ปค๋์์์ด ๋ฌธ์ ์ ์ํ๋ฅผ ์์ฝํ๊ณ ์์ต๋๊น? 512ac999๋ผ๋ ํจ์น๊ฐ์๋ ๊ฒ ๊ฐ์ง๋ง ๋ฌธ์ ๊ฐ์์์ต๋๋ค. ๋ ๋๋ฆฐ ๊ณณ์ ์ฝ์์ต๋๊น? ์๋๋ฉด ์ ์ฒด / ๋ถ๋ถ์ ์ผ๋ก ๊ณ ์ ๋์ด ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๋ฒ์ ์ ๋๊น?
@mariusgrigoriu ๋ ์์ ๋์ง ์์์ต๋๋ค. @chiluk ๋ ์ถ๊ฐ ํ ์คํธ๊ฐ ํ์ํ ๋ฌธ์ ๋ฅผ ์์ ํด์ผํ๋ ํจ์น๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ต์ ์ํ๋ https://github.com/kubernetes/kubernetes/issues/67577#issuecomment -482198124๋ฅผ ์ฐธ์กฐ
@Mwea ์ ์ญ ํ์ cfs_b-> runtime_remaining์ ์ ์ฅ๋ฉ๋๋ค. CPU ๋น ์คํ ๋๊ธฐ์ด (cfs_rq)์ ํ ๋น๋๋ฉด ๊ธ๋ก๋ฒ ํ์ ๋จ์์๋ ์์ด ์ค์ด ๋ญ๋๋ค. cfs_bandwidth_slice_us๋ ์ ์ญ ํ์์ CPU ๋ณ ์คํ ๋๊ธฐ์ด๋ก ์ ์ก๋๋ CPU ๋ฐํ์์ ์์ ๋๋ค. ์ค๋กํ์ด ๋ฐ์ํ๋ฉด cfs_b-> runtime_remaining == 0์ ์คํํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ํ ๋น๋์ด cfs_b์ ๋ณด์ถฉ ๋ ๋ค์ ๋ฐฐํฌ ๋๋ ค๋ฉด ํ์ฌ ๊ธฐ๊ฐ (๊ธฐ๋ณธ์ ์ผ๋ก 100ms)์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผํฉ๋๋ค. ๊ทํ์ cfs_rq. ์ต๊ทผ์ ๋ง๋ฃ ๋ ๋ฐํ์์ ์์ด cfs_rq ๋น ์ต๋ 1ms๋ผ๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ด๋ ์ฌ์ ํ์ด๋จธ๊ฐ CPU ๋น ์คํ ๋๊ธฐ์ด์์ ์ฌ์ฉ๋์ง ์์ ํ ๋น๋์ 1ms๋งํผ ๋ชจ๋ ๋ค์ ์บก์ฒํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ 1ms๋ ๊ธฐ๊ฐ์ด ๋๋ ๋ ๋ญ๋น / ๋ง๋ฃ๋ฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด 88 cpus์ ๊ฑธ์ณ ํผ์ง๋ ์ต์ ์ ๊ฒฝ์ฐ 100ms ๊ธฐ๊ฐ ๋น 88ms์ ๋ญ๋น ๋ ํ ๋น๋ ์ผ ์ ์์ต๋๋ค. ์ค์ ๋ก ์ฌ๋ ํ์ด๋จธ๊ฐ ์ ํด CPU ๋ณ ์คํ ๋๊ธฐ์ด์์ ์ฌ์ฉ๋์ง ์์ ๋ชจ๋ ํ ๋น๋์ ๋ค์ ์บก์ฒ ํ ์ ์๋๋ก ํ์ฉํ๋ ๋์ฒด ์ ์์ผ๋ก ์ด์ด์ก์ต๋๋ค.
๋น์ ์ด ํน๋ณํ ๊ฐ์กฐํ๋ ์ ์. ๋ด ์ ์์ CPU ๋น ์คํ ๋๊ธฐ์ด์ ํ ๋น ๋ ๋ฐํ์ ๋ง๋ฃ๋ฅผ ์์ ํ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์ด ์ค์ 512ac999์ ๋ํ ์์ ์ฌํญ์ ์ผ๋ถ์ ๋๋ค. ์ด๋ CPU ๋น ์คํ ๋๊ธฐ์ด ์ฌ์ด์ ํด๋ก ๋ถ๊ท ํ์ผ๋ก ์ธํด ํ ๋น๋์ด ์กฐ๊ธฐ์ ๋ง๋ฃ๋์ด ์์ง ํ ๋น๋ (afaiu)์ ์ฌ์ฉํ์ง ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ๊ธฐ๊ฐ ๊ฒฝ๊ณ์์ expires_seq๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ๋ฐ๋ผ์ expires_seq๋ ๋์ผํ ๊ธฐ๊ฐ์์์ ๋ ๊ฐ cfs_rq๊ฐ์ ์ผ์นํด์ผํฉ๋๋ค.
@mariusgrigoriu- ๋ฎ์ CPU ์ฌ์ฉ๋์ผ๋ก ๋์ ์ค๋กํ ๋ง์ ๋๋ฌํ๊ณ ์ปค๋์ด 512ac999 ์ด์ ์ธ ๊ฒฝ์ฐ ์๋ง๋ 512ac999๊ฐ ํ์ํ ๊ฒ์
๋๋ค. 512ac999๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ ์์์ ์ค๋ช
ํ ๋ฌธ์ ๊ฐ ํ์ฌ lkml์์ ๋
ผ์๋๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
@chiluk ์ด๋ฏธ ์ปค๋ 4.14์ ํธํ๋๋์ด ํจ์น์ ๋ฒ์ ์ ์ด๋ฏธ ๊ฒ์ ํ ์ ์ด ์์ต๋๊น? ์์ฒ ๊ฐ์ ํธ์คํธ๋ฅผ 4.9.62์์ 4.14.121๋ก ์ ๊ทธ๋ ์ด๋ํ์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ๋ณด๊ณ ์์ผ๋ฏ๋ก ๊ฝค ๊ณต๊ฒฉ์ ์ผ๋ก ํ ์คํธํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ์์ ๋ ์ธ๊ณ๋ฅผ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํด ์ ๋ง๋ก ๋กค ํฌ์๋ํ๊ณ ์ถ์ต๋๋ค. ๋ค์ ์ฃผ์ ์ง์ ์ด์์ ์๋ ํ ์ ์์ง๋ง ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๋ฉ์ง ๊ฒ์ ๋๋ค.
ํํ
Ben Segull์ ์ ์์ ๋ฐ๋ผ ์ง๋ ๋ฉฐ์น ๋์ ์ค์ ๋ก ํจ์น๋ฅผ ๋ค์ ์์ฑํ์ต๋๋ค. ์๋ก์ด ์ปค๋ ํจ์น๋ ํด๋ฌ์คํฐ์์ ํ
์คํธ ์๊ฐ์ ํ๋ณด ํ ์์๋๋๋ก ๊ณง ์ถ์ ๋ ๊ฒ์
๋๋ค.
@chiluk ํด๋น ํจ์น์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ์๋๋๋ผ๋ ๊ฑฑ์ ํ์ง ๋ง์ธ์. ์ง๋๊ฐ๋ ํจ์น๋ฅผ ๋์น์ง ์์๋์ง ํ์ธํ๊ณ ์์ต๋๋ค.
@PaulFurtado , ํจ์น๋ CFS ์์ฑ์์ ์ํด "์น์ธ"๋์์ผ๋ฉฐ ์ค์ผ์ค๋ฌ ๊ด๋ฆฌ์๊ฐ ํจ์น๋ฅผ ํตํฉํ์ฌ Linus์ ํธ์ํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
@chiluk ๊ฐ์ฌํฉ๋๋ค!
๋ฐฉ๊ธ ํ์ฌ ํ๋ก๋์
์ปค๋ ์ธ ์ปค๋ 4.14์ ํจ์น๋ฅผ ๋ฐฑ ํฌํธํ์ต๋๋ค.
๋ฐฑ ํฌํธ์ ๋ํ ์์ ๊ณผ fibtest์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๊ธฐ์์ ๋ง๋ค์์ต๋๋ค : https://gist.github.com/PaulFurtado/ff6c67ec87416b66ba1c6fc70f7beec1
kubernetes ๋ฐ mesos ํด๋ฌ์คํฐ์์ ์ฌ์ฉํ๋ ํ์ฌ ์ธ๋ c5.9xlarge ๋ฐ m5.24xlarge ec2 ์ธ์คํด์ค์์ ํจ์น๋ fibtest ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ๋ ๋ฐฐ๋ก ๋์ ๋๋ค. ์ด์ ์ธ๋ r4.16xlarge ์ธ์คํด์ค ์ ํ์์๋ 1.5 ๋ฐฐ ๋ ๋ง์ CPU ์ฌ์ฉ๋ฅ ์ ๊ด๋ฆฌํ์ง๋ง ์ถ๊ฐ ๋ฐ๋ณต์ ๊ฑฐ์ ๋ฐ์ํ์ง ์์ต๋๋ค (์ด๋ CPU ์์ฑ ๋ฐ ํผ๋ณด๋์น ์ํ์ค์ ์ง์ ์ ํน์ฑ ๋๋ฌธ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค). ์ด ์ซ์๋ ํ ์คํธ๋ฅผ 5 ์ด ๊ธฐ๋ณธ๊ฐ ๋์ 30 ์ด๋ก ๋๋ฆฌ๋ฉด ๊ฑฐ์ ์ ํํ๊ฒ ์ ์ง๋ฉ๋๋ค.
์ด๋ฒ ์ฃผ์์ด๋ฅผ QA ํ๊ฒฝ์ ์ ์ฉํ์ฌ ์ต์ ์ ์ค๋กํ ๋ง์ ๊ฒช๊ณ ์๋ ์ฑ์์ ๋ช ๊ฐ์ง ์งํ๋ฅผ ์ป์ ๊ฒ์ ๋๋ค. ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@PaulFurtado ๋จผ์ ํ ์คํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. kernel.org 4.14 ๋๋ ์ฐ๋ถํฌ 4.14๋ฅผ ์คํ ์ค์ด๋ผ๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ๋ ๋ค 512ac999๊ฐ ๋ค์ด ์์ต๋๋ค. fibtest์ ๊ฒฝ์ฐ ์๋ฃ๋ ๋ฐ๋ณต์ ์ฌ์ฉ ๋ cpu ์๊ฐ๋งํผ ์ค์ํ์ง ์์ต๋๋ค. ์๋ฃ๋ ๋ฐ๋ณต์ ํ ์คํธ๋ฅผ ์คํํ๋ ๋์ cpu mhz์ ์ํฅ์ ํฌ๊ฒ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค (ํนํ ํด๋ผ์ฐ๋์์ ์ ์ด ํ ์์๋ ์ ๋๊ฐ ํ์คํ์ง ์์).
kernel.org 4.14 ๋๋ ์ฐ๋ถํฌ 4.14๋ฅผ ์คํ ์ค์ด๋ผ๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ๋ ๋ค 512ac999๊ฐ ๋ค์ด ์์ต๋๋ค.
์, ์ฐ๋ฆฌ๋ ๋ฉ์ธ ๋ผ์ธ 4.14๋ฅผ ์คํํฉ๋๋ค (Amazon Linux 2 ์ปค๋์ ํจ์น ์ธํธ๋ฅผ ํฌํจํ์ง๋ง์ด ๊ฒฝ์ฐ์๋ ํด๋น ํจ์น๊ฐ ์ค์ํ์ง ์์).
512ac999๋ ๋ฉ์ธ ๋ผ์ธ 4.14.95์ ์ฐฉ๋ฅํ์ผ๋ฉฐ 4.14.77์์ 4.14.121+๋ก ์ ๊ทธ๋ ์ด๋ ํ ๋ ์ํฅ์ ๊ด์ฐฐํ์ต๋๋ค. ์ด๋ก ์ธํด memcached ์ปจํ ์ด๋ (๋งค์ฐ ์ ์ ์ค๋ ๋ ์)๊ฐ ์ค๋ช ํ ์์๋ ์ ํ์์ ์ ํ ์์์ผ๋ก ๋ฐ๋์์ง๋ง, golang ๋ฐ Java ์ปจํ ์ด๋ (๋งค์ฐ ๋์ ์ค๋ ๋ ์)์์ ๋ ๋ง์ ์ ํ์ ๊ฒฝํํ๊ฒ๋์์ต๋๋ค.
fibtest์ ๊ฒฝ์ฐ ์๋ฃ๋ ๋ฐ๋ณต์ ์ฌ์ฉ ๋ cpu ์๊ฐ๋งํผ ์ค์ํ์ง ์์ต๋๋ค. ์๋ฃ๋ ๋ฐ๋ณต์ ํ ์คํธ๋ฅผ ์คํํ๋ ๋์ cpu mhz์ ์ํฅ์ ํฌ๊ฒ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค (ํนํ ํด๋ผ์ฐ๋์์ ์ ์ด ํ ์์๋ ์ ๋๊ฐ ํ์คํ์ง ์์).
๋ ์๋กญ๊ฑฐ๋ ๋ ํฐ EC2 ์ธ์คํด์ค์์๋ ์ค์ ๋ก ํ๋ก์ธ์ ์ํ์ ๋ํ ์ ์ ํ ์์ค์ ํฐ๋ณด ๋ถ์คํธ๋ฅผ ๋ ์ํ๋ก ์คํ ํ๊ณ ์ฝ์ด๊ฐ ์ ํด ์ํ๊ฐ๋์ง ์๋๋กํฉ๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ c- ์ํ๋ฅผ ์กฐ์ ํ๊ณ ์์ง๋ง p- ์ํ๊ฐ ์๋๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๋ฐ๋ณต ์ฆ๊ฐ๋ฅผ ๋ณด์ง ๋ชปํ ์ธ์คํด์ค ์ ํ์ p- ์ํ๋ฅผ ์ ์ด ํ ์์๋ ์ ํ์ด๋ฏ๋ก ๋งค์ฐ ์ ์ค๋ช
ํ ์ ์์ต๋๋ค.
๋จผ์ ํ ์คํธ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค
์ ํ ๋ฌธ์ ์์ต๋๋ค. ์ฃผ๋ง ๋์ ์ฌ์ QA ํ๊ฒฝ์์ ์ํฉ์ด ์์ ์ ์ด์์ผ๋ฉฐ ๋ด์ผ ์ฃผ์ QA ํ๊ฒฝ์ ํจ์น๋ฅผ ๋ฐฐํฌํ๊ธฐ ์์ํ์ฌ ๋ ๋ง์ ์ค์ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. memcached๊ฐ ์ด์ ํจ์น์ ํํ์ ๋ฐ์๋ค๋ ์ ์ ๊ฐ์ํ ๋, ์ฐ๋ฆฌ๋ ์ผ์ดํฌ๋ฅผ ๊ฐ๊ณ ์ถ์๊ณ ๋ ํจ์น๋ฅผ ๋ชจ๋ ์ ์๋ฆฌ์ ๋์ด ๋จน๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ๊บผ์ด ํ ์คํธํ์ต๋๋ค. ์กฐ์ ์ ํฌ์ ํ ๋ชจ๋ ์์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๋ ผ์์ค์ธ ์ปค๋ ํจ์น์ ๋ํด ๋ฉ๋ชจ๋ฅผ ๋จ๊ธฐ๊ณ ์ถ์์ต๋๋ค ....
ํ์ฌ ํ ์คํธ์์ ์ฌ์ฉํ๊ณ ์๋ ์ปค๋์ ์ ์ฉํ์ผ๋ฉฐ CFS ์ค๋กํ ๋ง ์๋์์ ๋ช ๊ฐ์ง ํฐ ์ด์ ์ ์ป์์ต๋๋ค. ๋ณ๊ฒฝ์ ์ด์ ์ ํ์ธํ๊ธฐ ์ํด์ด๋ฅผ ์ต๋ 100ms๋ก ๊ฐ์ ธ์ค๊ณ ์ถ์ต๋๋ค.
ํจ์น๋ ์ค๋ ์์นจ์ ๋๋ฌ์ต๋๋ค.
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=de53fd7aedb100f03e5d2231cfce0e4993282425
Torvald์ ํธ๋ฆฌ์ ๋๋ฌํ๋ฉด Linux ์์ ํฌํจ์ ์ํด ์ ์ถํ๊ณ ์ดํ ์ฃผ์ ๋ฐฐํฌํ (Redhat / Ubuntu)์ ์ ์ถํฉ๋๋ค. ๋ค๋ฅธ ๊ฒ์ ๊ด์ฌ์ด ์๊ณ ๊ทธ๋ค์ด ๋ฆฌ๋ ์ค ์์ ํจ์น๋ฅผ ๋ฐ๋ฅด์ง ์๋๋ค๋ฉด ์ง์ ์ ์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์ด๋ฏธ์ง ์ฒ๋ฆฌ golang ๋ง์ดํฌ๋ก ์๋น์ค๋ก ํจ์น (ubuntu 18.04, 5.2.7 ์ปค๋, ๋ ธ๋ : 56 ์ฝ์ด CPU E5-2660 v4 @ 2.00GHz)๋ฅผ ํ ์คํธํ์ผ๋ฉฐ ๋งค์ฐ ์ธ์์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์์ต๋๋ค. ๋ ธ๋์์ CFS๋ฅผ ์์ ํ ๋นํ์ฑํํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ฑ๋ฅ.
๊ฑฐ์ 0์ ๊ฐ๊น์ด ์ค๋กํ ๋ง ์๋์์ ๋์์ฑ / CPU ์ฌ์ฉ๋ฅ ์ ๋ฐ๋ผ ์ง์ฐ ์๊ฐ์ด 5 ~ 35 % ๊ฐ์ํ๊ณ RPS๊ฐ 5 ~ 55 % ์ฆ๊ฐํ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค, @chiluk !
@jhohertz ๋ผ๊ณ
golang์ ์ฑ๋ฅ์ ๋์ด๋ ค๋ฉด GOMAXPROCS๋ฅผ ceil (quota) +2๋ก ์ค์ ํ์ญ์์ค. ํ๋ฌ์ค 2๋ ์ผ๋ถ ๋์์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค.
@chiluk ๋ GOMAXPROCS = 8๊ณผ GOMAXPROCS = 10์ผ๋ก cpu.limit = 8๋ก ํ ์คํธํ์ต๋๋ค. ํฐ ์ฐจ์ด๋ ์๋์ง๋ง ์ฝ 1-2 % ์ ๋์ ๋๋ค.
@zigmund ๋ cpu.limit๊ฐ 8 cpu์ cpuset์ ํ๋ก์ธ์ค๋ฅผ ๋ฐ์ธ๋ฉํด์ผํ๋ ์ ์ 8๋ก ์ค์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. 1-2 % ์ฐจ์ด๋ 8 ๊ฐ์ CPU ์์ ์ธํธ์์ 2 ๋ช ์ ์ถ๊ฐ ๊ณ ๋ฃจํด ๋ฌ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์คํธ ์ ํ์ ๋ํ ์ค๋ฒ ํค๋๊ฐ ์ฆ๊ฐํ ๊ฒ์ ๋๋ค.
GOMAXPROCS = # ์ค์ ์ ์ปค๋ ํจ์น๊ฐ ๋๋ฆฌ ๋ฐฐํฌ ๋ ๋๊น์ง go ํ๋ก๊ทธ๋จ์ ๋ํ ์ข์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๋ง ํ์ด์ผํฉ๋๋ค.
ํ๋ก๋์
ํด๋ฌ์คํฐ๋ฅผ ํจ์น ๋ ์ปค๋๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ์ผ๋ฉฐ ์ด์ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์๊ฐ์ ๊ณต์ ํ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ ์ค ํ๋์ ํต๊ณ-72 ์ฝ์ด E5-2695 v4 @ 2.10GHz, 128Gb RAM, Debian 9, 5.2.7 ์ปค๋ ํจ์น ํฌํจ.
์ฐ๋ฆฌ๋ ๋๋ถ๋ถ golang ์๋น์ค๋ก ๊ตฌ์ฑ๋ ํผํฉ๋ก๋๊ฐ ์์ง๋ง php์ python๋ ์์ต๋๋ค.
๊ณจ๋. ์ง์ฐ ์๊ฐ์ด ๋ ์งง๊ณ ์ฌ๋ฐ๋ฅธ GOMAXPROCS๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ ๋์ ์ผ๋ก ํ์ํฉ๋๋ค. ๋ค์์ ๊ธฐ๋ณธ GOMAXPROCS = 72 ์ธ ์๋น์ค์
๋๋ค. ์ฐ๋ฆฌ๋ ~ 16์์ ์ปค๋์ ๋ณ๊ฒฝํ์ผ๋ฉฐ ๊ทธ ํ ์ง์ฐ ์๊ฐ์ด ์ค์ด๋ค๊ณ CPU ์ฌ์ฉ๋ฅ ์ด ํฌ๊ฒ ์ฆ๊ฐํ์ต๋๋ค. 21:15์ ์ฌ๋ฐ๋ฅธ GOMAXPROCS๋ฅผ ์ค์ ํ๊ณ CPU ์ฌ์ฉ๋ฅ ์ ์ ๊ทํํ์ต๋๋ค.
ํ์ด์ฌ. ์ถ๊ฐ ์ด๋์์ด ํจ์น๋ฅผ ํตํด ๋ชจ๋ ๊ฒ์ด ๊ฐ์ ๋์์ต๋๋ค. CPU ์ฌ์ฉ๋ฅ ๊ณผ ์ง์ฐ ์๊ฐ์ด ๊ฐ์ํ์ต๋๋ค.
PHP. CPU ์ฌ์ฉ๋ฅ ์ ๋์ผํ๋ฉฐ ์ผ๋ถ ์๋น์ค์์๋ ์ง์ฐ ์๊ฐ์ด ๊ฑฐ์ ๊ฐ์ํ์ง ์์ต๋๋ค. ํฐ ์ด์ต์ด ์๋๋๋ค.
๊ฐ์ฌํฉ๋๋ค @zigmund.
I setted correct GOMAXPROCS
๋ผ๊ณ ๋งํ์ ๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ...
72 ๊ฐ์ ์ฝ์ด ๋
ธ๋์์ ํ๋์ ํฌ๋ ๋ง ์คํํ๊ณ ์์ง ์๋ค๊ณ ๊ฐ์ ํ๋ฏ๋ก GOMAXPROCS
๋ฅผ ๋ ๋ฎ์ ๊ฐ์ผ๋ก ์ค์ ํ๊ฑฐ๋ ํฌ๋์ CPU ์ ํ๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค @zigmund. ์ด๋ ๋ณ๊ฒฝ์ ์์ํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ์ผ์นํฉ๋๋ค.
GIL์ด ์ด๊ฒ์ ์ด์ ์ ๊ฑฐ์ ๋ฌดํจํ ํ ๊ฒ์ผ๋ก ์์ํ์ง๋ง ํ์ด์ฌ ๊ฐ์ ์ ์ ๋ง ๋๋์ต๋๋ค. ์ด ํจ์น๊ฐ ์๋ต ์๊ฐ์ ๊ฑฐ์ ์์ ํ ์ค์ฌ์ผํ๋ ๊ฒฝ์ฐ ์ ํ ๊ธฐ๊ฐ์ ๋น์จ์ ์ค์ด๊ณ CPU ์ฌ์ฉ๋ฅ ์ ๋์ด์ญ์์ค. ํ์ด์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ฌ์ ํ ์ ์์ ๋๊น?
@ prune998 ์ฃ์กํฉ๋๋ค, ์ฒ ์๊ฐ ํ๋ ธ์ ์๋ ์์ต๋๋ค. GOMAXPROCS = limits.cpu๋ฅผ ์ค์ ํ์ต๋๋ค. ํ์ฌ์ด ํด๋ฌ์คํฐ์๋ ๋ ธ๋ ๋น ์ฝ 110 ๊ฐ์ ํฌ๋๊ฐ ์์ต๋๋ค.
@chiluk ์ ๋ ํ์ด์ฌ์ ๊ฐํ์ง ์์ผ๋ฉฐ ํจ์น๊ฐ ํ์ ๊ณ์ธต์์ ์ด๋ป๊ฒ ์ํฅ์ ๋ฐ์๋์ง ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋ฌ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ์์ด ์ ์์ด๋ฉฐ ์ปค๋ ๋ณ๊ฒฝ ํ ํ์ธํ์ต๋๋ค.
@chiluk ๋ค์ํ Linux ๋ฐฐํฌํ์์ ํจ์น ์งํ ์ํฉ์ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ ๋ ํนํ ๋ฐ๋น์๊ณผ AWS Linux์ ๊ด์ฌ์ด ์์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐ๋ถํฌ ๋ฑ์ ๊ด์ฌ์ด ์๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ์ด๋ค ๋น์ ๋น์ถ์ด๋ ๊ฐ์ฌํฉ๋๋ค.
@Nuru https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html?highlight=stable%20rules ... ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด ํจ์น๊ฐ Linus์ ๋๋ฌํ๋ฉด linux-stable์ ํตํด ์ ์ถํฉ๋๋ค. tree, * (์๋ง๋ ๋ ์ผ์ฐ), ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ฐฐํฌํ์ linux-stable ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ผ์ผํ๋ฉฐ ์์ ๋ ์ ์ง ๊ด๋ฆฌ์๊ฐ ํ์ฉ ํ ํจ์น๋ฅผ ๋ฐฐํฌํ ํน์ ์ปค๋๋ก ๊ฐ์ ธ์์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ฐฐํฌํ์ ์คํํ์ง ์์์ผํฉ๋๋ค.
@chiluk Linux ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ ๋๋ค. "Linus 'ํธ๋ฆฌ"๋ https://github.com/torvalds/linux ๋ฅผ ์๋ฏธํฉ๋๊น?
Linus์ ํธ๋ฆฌ๋ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/์ ์์ต๋๋ค. ๋ด ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฌ ๊ฐ๋ฐ ํตํฉ ํธ๋ฆฌ ์ธ linux-next์ ์ค๋น๋์ด ์์ต๋๋ค. ์ ์ปค๋ ๊ฐ๋ฐ์ ์ํ๊ธฐ์ ์ฝ๊ฐ ๊ฐํ ์์ง๋ง ์๋ํฉ๋๋ค.
๊ทธ๋ 5.3์ด ๋ฆด๋ฆฌ์ค๋๊ณ 5.4-rc0์์ ๊ฐ๋ฐ์ ์์ํ๋ฉด linux-next ํธ๋ฆฌ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ฌ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๊ทธ๊ฒ์ ์์ ๋ ์ปค๋์ด์ด ์์ ์ ์์ํ ๊ฒ์ผ๋ก ์์๋๋ ์๊ฐ ํ๋ ์์ ๋๋ค. Linus๊ฐ 5.3์ด ์์ ์ ์ด๋ผ๊ณ ๋๋ ๋๋ง๋ค ๋๊ตฌ๋ ์ถ์ธก ํ ์ ์์ต๋๋ค.
[Linus]๋ 5.3์ด ๋ฆด๋ฆฌ์ค๋๊ณ 5.4-rc0์์ ๊ฐ๋ฐ์ ์์ํ๋ฉด linux-next ํธ๋ฆฌ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ ธ์ฌ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์์ ๋ ์ปค๋์ด์ด ์์ ์ ์์ํ ๊ฒ์ผ๋ก ์์๋๋ ์๊ฐ ํ๋ ์์ ๋๋ค. Linus๊ฐ 5.3์ด ์์ ์ ์ด๋ผ๊ณ ๋๋ ๋๋ง๋ค ๋๊ตฌ๋ ์ถ์ธก ํ ์ ์์ต๋๋ค.
@chiluk Linus๊ฐ 2019 ๋ 9 ์ 15 ์ผ ์ 5.3์ด ์์ ์ ์ด๋ผ๊ณ ๊ฒฐ์ ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด "linux-next"๋ ๋ฌด์์ด๋ฉฐ ๋ค์ ๋จ๊ณ๋ฅผ ํตํด ํจ์น ์งํ ์ํฉ์ ์ด๋ป๊ฒ ์ถ์ ํฉ๋๊น?
๋ฐ๋น์ ์คํธ๋ ์น ํจํค์ง ๋ฐ / ๋๋์ด ํจ์น๊ฐ ํฌํจ ๋ AWS ์ด๋ฏธ์ง๋ฅผ ๋น๋ ํ ์ฌ๋์ด ์์ต๋๊น? https://github.com/kubernetes-sigs/image-builder/tree/master/images/kube-deploy/imagebuilder๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ ๊ฒํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ์ค๋ณต ๋ ธ๋ ฅ์ ํผํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ด๊ฒ์ ์ด์ Linus์ ํธ๋ฆฌ ์ ๋ณํฉ๋์์ผ๋ฉฐ 5.4์์ ๋ฆด๋ฆฌ์ค๋์ด์ผํฉ๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ linux-stable์ ์ ์ถํ๊ณ , ์์ ๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ๋ฅด๋ ๋ชจ๋ ๋ฐฐํฌํ์ด ์์กฐ๋กญ๊ฒ ์งํ๋๋ค๊ณ ๊ฐ์ ํ๋ฉด ๊ณง ๊ทธ๊ฒ์ ์ ํํ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค.
์ด ๋ณ๊ฒฝ์ด CentOS (7)๋ก ๋ด๋ ค๊ฐ๋ ๊ฒฝ์ฐ / ์ด๋ป๊ฒ ๋ฐ๋ผ์ผํ ์ง ์๋ ์ฌ๋์ด ์์ต๋๊น? ๋ฐฑ ํฌํ ๋ฑ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
@till https://github.com/kubernetes/kubernetes/issues/67577#issuecomment -531370333
์์ ์ ์ธ ์ปค๋ ๋ํ๋ ์ฌ๊ธฐ์์ ์งํ๋ฉ๋๋ค.
https://lore.kernel.org/stable/CAC=E7cUXpUDgpvsmMaMU6sAydbfD0FEJiK25R1r=e9=YtcPjGw@mail.gmail.com/
๋ํ KubeCon์๊ฐ๋ ์ฌ๋๋ค์ ์ํด์ด ๋ฌธ์ ๋ฅผ ๊ฑฐ๊ธฐ์์ ๋ฐํ ํ ๊ฒ์
๋๋ค.
https://sched.co/Uae1
์ค์ผ์ค๋ฌ ๊ด๋ฆฌ์์ ๋ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Greg HK๊ฐ ์์ ์ ์ธ ํธ๋ฆฌ๋ก ๊ฐ์ ธ ์ค๊ธฐ ์ํด ์ฐพ๊ณ ์๋ ack?
Greg KH๋ ์ค์ผ์ค๋ฌ ๊ด๋ฆฌ์๊ฐ ์๋ตํ์ง ์์๊ธฐ ๋๋ฌธ์์ด ํจ์น์ ๋ํ ๊ฒฐ์ ์ ๋ฏธ๋ฃจ ์์ต๋๋ค. ์ด ํจ์น๋ฅผ ํ ์คํธํ๊ณ ๋ฐฑ ํฌํ ๋์ด์ผํ๋ค๊ณ ์๊ฐํ๋ LKML์ ๋ํ ์ ์ด์ธ์ ๋ค๋ฅธ ์ฌ๋์ ์๊ฒฌ์ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
CoreOS๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ๊ฒฝ์ฐ, ๊ฐ๋ฐฉ ๋ฌธ์ ๊ฐ์๋ค @chiluk์ ํจ์น๊ฐ ๋ฐฑ ํฌํธ ํ ๊ฒ์ ์์ฒญ.
CoreOS ์ปค๋ 4.19.82์๋ ์์ ์ฌํญ์ด ์์ต๋๋ค : https://github.com/coreos/linux/pull/364
CoreOS Container Linux 2317.0.1 (์ํ ์ฑ๋)์๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์ฌํญ์ด ์์ต๋๋ค. https://github.com/coreos/coreos-overlay/pull/3796 http://coreos.com/releases/#2317.0.1
Linux stable ๋ก์ ๋ฐฑ ํฌํธ ๋ ํจ์น๊ฐ ์ ๋๋ก ์ ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋จ ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. @chiluk Linux ์์ ์์ํ ๋ฐฑ ํฌํธ ์์
์ ํ์๊ฒ ์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด 4.9๋ก ๋ฐฑ ํฌํธํ์ฌ Debian "stretch"๋ก ๋ค์ด๊ฐ kops
์ํด ์ ํ๋๋๋ก ํ์๊ฒ ์ต๋๊น? "์คํธ๋ ์น"์ ๋ค์ด๊ฐ๋ ๋ฐ 6 ๊ฐ์์ด ๊ฑธ๋ฆด ๊ฒ ๊ฐ์ง๋ง ๊ทธ๋ kops
๊ฐ "buster"๋ก ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ฒ์
๋๋ค.
@Nuru , ๋๋ ํจ์น๋ฅผ ๋ฐฑ ํฌํธํ๊ณ ์คํธ๋ ์น ํจํค์ง (stretch-backports ์ปค๋ ๊ธฐ๋ฐ)์ kops 1.11 ์นํ์ ์ธ AMI๋ฅผ ๋ง๋ค์์ต๋๋ค.
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-4.19.67-pm_4.19.67-1_amd64.buildinfo
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-image-4.19.67-pm_4.19.67-1_amd64.deb
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-image-4.19.67-pm-dbg_4.19.67-1_amd64.deb
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-headers-4.19.67-pm_4.19.67-1_amd64.deb
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-4.19.67-pm_4.19.67-1_amd64.changes
https://pm-kops-dev.s3.amazonaws.com/kernel-packages/linux-libc-dev_4.19.67-1_amd64.deb
293993587779 / k8s-1.11-debian-stretch-amd64-hvm-ebs-2019-09-26
@blakebarnett ๊ทํ์ ๋ ธ๋ ฅ์ ๊ฐ์ฌ ๋๋ฆฌ๋ฉฐ ๊ท์ฐฎ๊ฒํด์ ๋ฏธ์ํ์ง๋ง ์กฐ๊ธ ๋ ํผ๋ ์ค๋ฝ์ต๋๋ค.
3 ๊ฐ์ ํจ์น๋ฅผ ๋ชจ๋ 4.9๋ก ๋ฐฑ ํฌํธ ํ์ต๋๊น? (์ ๋ ๋ฐ๋น์ ํจํค์ง๋ก ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ฌด์์ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. "๋ณ๊ฒฝ ์ฌํญ"๋ฌธ์๋ ์ค์ ๋ก ๋ณ๊ฒฝ๋ ์ฌํญ์ ๋ค๋ฃจ์ง ์์ต๋๋ค.)
๋ํ ์ด๋ค ๋ฆฌ์ ์์ AMI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
์๋์, 4.19 ์ธ stretch-backports ์ปค๋์ ์ฌ์ฉํ์ต๋๋ค. AWS์์๋ ํ์ํ ์์ ์ฌํญ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค (ํนํ M5 / C5 ์ธ์คํด์ค ์ ํ์ ๊ฒฝ์ฐ).
๋ด๊ฐ ๋ฏฟ๋ ๋ชจ๋ ํจ์น๋ฅผ ํตํฉ ํ diff๋ฅผ ์ ์ฉํ์ต๋๋ค. 4.19์์ ๋ค๋ฅธ ๊ณณ์์ ์ญ์ ๋ ๋ณ์์ ๋ํ ์ถ๊ฐ ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ฝ๊ฐ ๋ณ๊ฒฝํด์ผํ์ต๋๋ค. ๋จผ์ https://github.com/kubernetes/kubernetes/issues/67577์ ์ ์ฉํ์ต๋๋ค.
--- kernel/sched/fair.c 2019-09-25 16:06:02.954933954 -0700
+++ kernel/sched/fair.c-b 2019-09-25 16:06:56.341615817 -0700
@@ -4928,8 +4928,6 @@
cfs_b->period_active = 1;
overrun = hrtimer_forward_now(&cfs_b->period_timer, cfs_b->period);
- cfs_b->runtime_expires += (overrun + 1) * ktime_to_ns(cfs_b->period);
- cfs_b->expires_seq++;
hrtimer_start_expires(&cfs_b->period_timer, HRTIMER_MODE_ABS_PINNED);
}
--- kernel/sched/sched.h 2019-08-16 01:12:54.000000000 -0700
+++ sched.h.b 2019-09-25 13:24:00.444566284 -0700
@@ -334,8 +334,6 @@
u64 quota;
u64 runtime;
s64 hierarchical_quota;
- u64 runtime_expires;
- int expires_seq;
short idle;
short period_active;
@@ -555,8 +553,6 @@
#ifdef CONFIG_CFS_BANDWIDTH
int runtime_enabled;
- int expires_seq;
- u64 runtime_expires;
s64 runtime_remaining;
u64 throttled_clock;
AMI๊ฐ us-west-1์ ๊ฒ์๋ฉ๋๋ค.
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด ํจ์น๋ฅผ ๋ฐฑ ํฌํธํ์ฌ Linux ์์ ์ ์ธ ์ปค๋์ ์ ์ถํ์ต๋๋ค.
v4.14 https://lore.kernel.org/stable/[email protected]/
v4.19 https://lore.kernel.org/stable/[email protected]/ #t
์๋
ํ์ธ์,
4.19 ๋ธ๋์น์ ํจ์น๋ฅผ ํตํฉ ํ ํ, buster ๋ฐ stretch-backport์์ kerner๋ฅผ ์ ์ ํ ์
๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด ๋ฐ๋น์ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์ด์์ต๋๋ค.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946144
๋ฐ๋น์ ํจํค์ง ์ ๊ทธ๋ ์ด๋์ ๋ํ ์๋ก์ด ์ฃผ์์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ง์ค์ด์ง ๋ง์ญ์์ค.
์ด๊ฒ์ด ๋๋ฌด ์คํธ ์ ์ด์ง๋ ์์ง๋ง @chiluk์ ํ๋ฅญํ ๊ฐ์ฐ์์ด ๋ฌธ์ ์ ๊ด๋ จ๋ ๋ง์ ๋ฐฐ๊ฒฝ ์ ๋ณด๋ก ์ฐ๊ฒฐํ๊ณ ์ถ์์ต๋๋ค . https://youtu.be/UE7QX98-kO0.
GKE์์ ์กฐ์ ์ ํผํ ์์๋ ๋ฐฉ๋ฒ์ด ์๋์? ์ฐ๋ฆฌ๋ PHP ์ปจํ ์ด๋์ ํ ๋ฐฉ๋ฒ์ด ์ผ๋ฐ์ ์ธ 0.1 ์ด ๋์ 120 ์ด๋ฅผ ์ฌ์ฉํ๋ ํฐ ๋ฌธ์ ๊ฐ์์์ต๋๋ค.
CPU ์ ํ ์ ๊ฑฐ
์ฐ๋ฆฌ๋ ์ด๋ฏธ CPU ์์ฒญ์ด ๋๋ฌด ์ ์ ๋ ์ปจํ ์ด๋๊ฐ ์ ํ๋๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ์ ํต์ฌ์ด๋ฉฐ ์ ํ์ด ์์ผ๋ฉฐ CPU ์์ฒญ ๋ง ์ฌ์ฉํ๋ฉด ์ฌ์ ํ ์ค๋กํ ๋ง์ด ๋ฐ์ํฉ๋๋ค.
@bartoszhernas ์ฌ๊ธฐ์ ์๋ชป๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ์ค๋ ๋์ ์ฌ๋๋ค์ด "throttling"์ ์ธ๊ธ ํ ๋ cgroup ์ฆ๊ฐ์ ๋ํ cpu.stat์ nr_throttled ์ธ cfs ๋์ญํญ ์ ์ด๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ CPU ์ ํ์ด ํ์ฑํ ๋ ๊ฒฝ์ฐ์๋ง ํ์ฑํ๋ฉ๋๋ค. GKE๊ฐ ์ฌ์ฉ์ ๋ชจ๋ฅด๊ฒ ํ (Pod)์ ์ ํ์ ์ถ๊ฐํ์ง ์๋ ํ ๋๋ ๋น์ ์ด ์น๋ ๊ฒ์ ์กฐ์ ์ด๋ผ๊ณ ๋ถ๋ฅด์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ ๋น์ ์ด "ํ๋ก์ธ์์ ๋ํ ๊ฒฝํฉ"์ด๋ผ๊ณ ๋ฌ์ฌ ํ ๊ฒ์ ๋ถ๋ฅผ ๊ฒ์ ๋๋ค. ์์ฒญํ ๊ฒ๋ณด๋ค ์์ฃผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์์ ํ๋ก์ธ์ ๋๋ ๊ธฐํ ๋ฆฌ์์ค์ ๋ํด ๊ฒฝ์ํ๋ ์๋ชป๋ ํฌ๊ธฐ์ ์์ฉ ํ๋ก๊ทธ๋จ * (์์ฒญ)์ด ์ฌ๋ฌ ๊ฐ์์ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ํ๊ณ๋ฅผ ์ฌ์ฉํ๋ ์ ํํ ์ด์ ์ ๋๋ค. ๋ฐ๋ผ์ ๋ถ์ ์ ํ ํฌ๊ธฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์์ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์๋ง ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ ๋ถ์กฑํ ์์ฒญ ๋์ด ๋จ์ํ ์๋ชป๋ ์ค์ผ์ค๋ง ๋์์ผ๋ก ์ด์ด์ง ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์์ฒญ์ ๋ฎ๊ฒ ์ค์ ํ๋ ๊ฒ์ ๋ ๋์ "์์ฒญ"์์ฉ ํ๋ก๊ทธ๋จ์ ๋นํด ์์ "์ข์"๊ฐ์ ์ค์ ํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ํํธ ์ ํ์ ํ์ธํ์ญ์์ค.
90 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ์ต์ ๋ฌธ์ ๋ก ํ์ํฉ๋๋ค.
๋นํ์ฑ ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30 ์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ์ข
๋ฃ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
ํ์ฌ ์ข
๋ฃํ์ธ์.
sig-testing, kubernetes / test-infra ๋ฐ / ๋๋ fejta์ ํผ๋๋ฐฑ์
/ lifecycle stale
/ remove-lifecycle stale
๋ด ์ดํด์์ ์ปค๋์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์์ ๋์ด https://github.com/coreos/bugs/issues/2623์ ContainerLinux์์ ์ฌ์ฉํ ์ ์์ต๋๋ค
์ด ์ปค๋ ํจ์น ์ดํ ๋จ์ ๋ฌธ์ ๋ฅผ ์๊ณ ์๋ ์ฌ๋์ด ์์ต๋๊น?
@sfudeus Kubernetes๋ ๋ชจ๋ Linux ๋ฒ์ ๋๋ AFAIK, POSIT ํธํ Unix ๋ฒ์ ์์ ์คํํ ์ ์์ต๋๋ค. ์ด ๋ฒ๊ทธ๋ Linux๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ฌ๋๋ค์๊ฒ๋ ๊ฒฐ์ฝ ๋ฌธ์ ๊ฐ๋์ง ์์์ผ๋ฉฐ ์ผ๋ถ Linux ํ์ ๋ฐฐํฌํ์์๋ ์์ ๋์์ผ๋ฉฐ ๋ค๋ฅธ ๋ฐฐํฌํ์์๋ ์์ ๋์ง ์์์ต๋๋ค.
๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ Linux ์ปค๋ 5.4์์ ์์ ๋์์ผ๋ฉฐ ํ์ฌ๋ก์๋ ๊ฑฐ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ํจ์น๋ ๋ค์ํ ์ด์ ์ปค๋๋ก ๋ฐฑ ํฌํ ํ ์ ์์ผ๋ฉฐ ์์ง 5.4 ์ปค๋๋ก ์ด๋ํ ์ค๋น๊ฐ๋์ง ์์ ์ Linux ๋ฐฐํฌํ์ ํฌํจํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ๋ ์์ ์ปค๋ฐ ๋ชฉ๋ก์์ ๋ณผ ์ ์๋ฏ์ด ๋ฒ๊ทธ ์์ ํจ์น๋ ๋๊ตฐ๊ฐ๊ฐ Kubernetes๋ฅผ ์ฌ์ฉํ๊ณ ์์ ์์๋ ๋ฌด์ํ Linux ๋ฐฐํฌํ์ ์ฌ์ ํ ํตํฉ๋๋ ๊ณผ์ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ํ์ฑ ์ปค๋ฐ ์ฐธ์กฐ๊ฐ ๊ณ์ ํ์๋๋ ๋์์ด ๋ฌธ์ ๋ฅผ ์ด์ด๋๊ณ ์ถ์ต๋๋ค. ๋ํ ๋๊ตฐ๊ฐ๊ฐ Kubernetes ์ค์น๊ฐ ์ํฅ์ ๋ฐ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์์๋ ์คํฌ๋ฆฝํธ ๋๋ ๊ธฐํ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์ข ๋ฃ๋๋ ๊ฒ์๋ณด๊ณ ์ถ์ต๋๋ค.
@Nuru ๊ด์ฐฎ์์, ์ด๋ฏธ ์๋ ค์ง ๋ค๋ฅธ ์ปค๋ ๋ฌธ์ ๊ฐ ๋จ์ ์์ง ์์์ง ํ์ธํ๊ณ ์ถ์์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์์ ์ฌํญ์ ํตํฉ ํ ๋๊ท๋ชจ ๋ฐฐํฌํ๋ณด๋ค ๋ ์ค๋ ์ด์ด ๋์ง ์์ ๊ฒ์ ๋๋ค. ๋์๋ IoT ์ฅ์น๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ๋์์ด ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธ ํ ์ ์์ต๋๋ค. ๋ซํ ๋ฌธ์ ๋ ์ฐพ์ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฑด ๋ด 2 ์ผํธ์ ๋ถ๊ณผํฉ๋๋ค.
์ด๊ฒ์ด ์ฌ๋๋ค์๊ฒ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ฌ๋ฐ๋ฅธ ์ฅ์์ธ์ง ํ์คํ์ง ์์ง๋ง ๋ค๋ฅธ ๊ณณ์์์ด๋ฅผ ์ ๊ธฐํด์ผ ํ ๊ณณ์ ํ์คํ์ง ์์ต๋๋ค.
k8s 1.15.10 ํด๋ฌ์คํฐ๋ฅผ ์ฌ์ฉํ์ฌ Debian Buster (buster-backports ์ปค๋ ์ฌ์ฉ)์์ 5.4 Linux ์ปค๋์ ์คํ ์ค์ด๋ฉฐ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํนํ ์ผ๋ฐ์ ์ผ๋ก ํ ์ผ์ด ๊ฑฐ์์๊ณ (kube-downscaler๋ ์ฐ๋ฆฌ๊ฐ ๊ณ์ ๋์๊ฐ๋ ์์ด๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์ฝ 3m์ CPU๊ฐ ํ์ํจ) ํ ๋น ๋ CPU ๋ฆฌ์์ค๊ฐ ๋งค์ฐ ์ ๊ณ (kube-downscaler์ ๊ฒฝ์ฐ 50m) ํด๋ฌ์คํฐ) ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๋งค์ฐ ๋์ ์กฐ์ ๊ฐ์ ๋ณผ ์ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก kube-downscaler๋ ๊ธฐ๋ณธ์ ์ผ๋ก sleep
๋ฅผ 30 ๋ถ ๋์ ์คํํ๋ Python ์คํฌ๋ฆฝํธ์
๋๋ค. cAdvisor๋์ด ์ปจํ
์ด๋์ ๋ํ container_cpu_cfs_throttled_periods_total์ ์ฆ๊ฐ๊ฐ์ด ์ปจํ
์ด๋์ container_cpu_cfs_periods_total ๊ฐ๊ณผ ํญ์ ๋ค์ ์ ์ฌํ๋๋ก ํ์ํฉ๋๋ค (5m ๊ฐ๊ฒฉ์ผ๋ก ์ฆ๊ฐ๋ฅผ ํ์ธํ ๋ ๋ ๋ค ์ฝ 250 ์). ์ ํ ๊ธฐ๊ฐ์ด 0์ ๊ฐ๊น์ธ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
์ด๊ฒ์ ์๋ชป ์ธก์ ํ๊ณ ์์ต๋๊น? cAdvisor๊ฐ ์๋ชป๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํฉ๋๊น? ์ค๋กํ ๊ธฐ๊ฐ์ด ๊ฐ์ํด์ผํ๋ค๋ ์ฐ๋ฆฌ์ ๊ฐ์ ์ด ๋ง์ต๋๊น? ์ฌ๊ธฐ์์ ์กฐ์ธ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
5.4 ์ปค๋๋ก ์ ํ ํ ํ์ด ๋ฌธ์ ๊ฐ์๋ Pod ์๊ฐ ์ฝ๊ฐ (์ฝ 40 %) ๊ฐ์ํ๋ ๊ฒ์ ๋ณด์์ง๋ง ํ์ฌ๋ณด๊ณ ์๋ ๊ฒ์ด ์ค์ ๋ฌธ์ ์ธ์ง ์ฌ๋ถ๋ ํ์คํ์ง ์์ต๋๋ค. ์ฃผ๋ก ์์ ํต๊ณ๋ฅผ ๋ณผ ๋ 3m ํ๊ท CPU ์ฌ์ฉ๋์ผ๋ก ์ด๋ฌํ ๊ฐ์ ์ป๋ ๊ฒฝ์ฐ "์กฐ์ "์ด ์ค์ ๋ก ์๋ฏธํ๋ ๋ฐ๊ฐ ํ์คํ์ง ์์ต๋๋ค. ์คํ์ค์ธ ๋ ธ๋๋ ์ค๋ฒ ์ปค๋ฐ๋์ง ์์ผ๋ฉฐ ํ๊ท CPU ์ฌ์ฉ๋์ด 10 % ๋ฏธ๋ง์ ๋๋ค.
@timstoop ์ค์ผ์ค๋ฌ๊ฐ ์ ๊ฒฝ ์ฐ๋ ๊ฐ๊ฒฉ์ ํฐ 30 ๋ถ ๋ฒ์๊ฐ ์๋ ๋ง์ดํฌ๋ก ์ด ์์ญ์ ์์ต๋๋ค. ์ปจํ ์ด๋์ CPU ์ ํ์ด 50 ๋ฐ๋ฆฌ ํธ์ด๊ณ 100 ๋ง์ดํฌ๋ก ์ด์ ๋ฒ์์์ 50 ๋ฐ๋ฆฌ ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 30 ๋ถ ์ ํด ์๊ฐ์ ๊ด๊ณ์์ด ์ ํ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 50 ๋ฐ๋ฆฌ ํธ๋ ๋งค์ฐ ์์ CPU ์ ํ์ ๋๋ค. ํ์ด์ฌ ํ๋ก๊ทธ๋จ์ด ๋ฎ์ ์ ํ์ผ๋ก ๋จ์ผ HTTPS ์์ฒญ์ํ๋ ๊ฒฝ์ฐ์๋ ๊ฑฐ์ ์ ํ์๋ฐ์ ์ ์์ต๋๋ค.
์คํ์ค์ธ ๋ ธ๋๋ ์ค๋ฒ ์ปค๋ฐ๋์ง ์์ผ๋ฉฐ ํ๊ท CPU ์ฌ์ฉ๋์ด 10 % ๋ฏธ๋ง์ ๋๋ค.
๋ช ํํํ๊ธฐ ์ํด ๋ ธ๋์๋ก๋ ๋ฐ ๊ธฐํ ์ํฌ๋ก๋๋ ์ค๋กํ ๋ง๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ ํ์ ์ปจํ ์ด๋ / cgroup์ ์์ฒด ์ ํ๋ง์ ๊ณ ๋ คํฉ๋๋ค.
@PaulFurtado ๊ทํ์ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๊ทธ๋ฌ๋ Pod ์์ฒด์ ํ๊ท ์ฌ์ฉ๋์ ํด๋น ์ ์ ๋ชจ๋์์ 3m cpu์ด๋ฉฐ ์ฌ์ ํ ์กฐ์ ์ค์ ๋๋ค. ๊ทธ ์๊ฐ ๋์ ์ด๋ค ์์ฒญ๋ํ์ง ์๊ณ ์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. 50m ์ํ๋ ํ ์ ์์ผ๋ฉด ์ข๊ฒ ์ฃ ? ์๋๋ฉด ์ด์จ๋ ์๋ชป๋ ๊ฐ์ ์ ๋๊น?
๋๋ ์ด๊ฒ์ด ์ ํ์ฑ ๋ฌธ์ ๊ฐ์์ ์ ๋๋ก ๋ฎ์ ์์น๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ 50m๋ ๋๋ฌด ๋ฎ์์ ์ด๋ค ๊ฒ์ด ๋ ๋์ด ์ง ์ ์์ต๋๋ค. Python์ ๋ฐํ์์ ์ ์๋ ๋์ ์ค๋ ๋์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ํ ํ ์๋ ์์ต๋๋ค.
๋น์ ๋ง์ด ๋ง์์ด์. ์ฌ์ค์ด ์๋ ๊ฐ์ ์ํ๊ณ ์์์ด์. ๊ทํ์ ์๋ด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ง๊ธ์ ์ดํด๊ฐ๊ฐ๋๋ค.
์ปค๋ ํจ์น๊ฐ 4.19 LTS ์ปค๋์ ์ ์ฉ๋๊ณ CoreOS / Flatcar์ ๋ํ๋ ์ดํ๋ก ์ฌ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ํฌ๊ฒ ๊ฐ์ ๋์๋ค๊ณ ๋งํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ ์๊ฐ, ๋ด๊ฐ ์ ํ๋๋ ์ ์ผํ ๊ฒ์ ๋ด๊ฐ ํ๊ณ๋ฅผ ์ฌ๋ ค์ผ ํ ๋ช ๊ฐ์ง ๊ฒ์ ๋๋ค. :๋ฏธ์:
@sfudeus @chiluk ์ปค๋์์ด ๋ฌธ์ ๊ฐ ์์ ๋์๋์ง ํ์ธํ๋ ๊ฐ๋จํ ํ ์คํธ๊ฐ ์์ต๋๊น?
kope.io/k8s-1.15-debian-stretch-amd64-hvm-ebs-2020-01-17 (ํ์ฌ ๊ณต์ kops
์ด๋ฏธ์ง)์ด ํจ์น๋์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค.
@mariusgrigoriu์ ๋์ํฉ๋๋ค. ์ ์ cpu ์ ์ฑ ์ ๋ฐ๋ผ ๋ ์ cpuset์์ ์คํ๋๋ ํฌ๋์ ๊ฒฝ์ฐ ๋จ์ํ cpu ํ ๋น๋ ์ ํ์ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค. ์ด์จ๋ ๋ ์ cpu ์ธํธ์์๋ง ์คํํ ์ ์์ต๋๋ค. ์์ ํจ์น๋ ์ด๋ฌํ ๋ชฉ์ ์์ํ ๊ฒ์ด๋ฉฐ ์ด๋ฌํ ์ ํ์ ํฌ๋์๋ง ํด๋น๋ฉ๋๋ค.
@Nuru ๋๋ https://github.com/indeedeng/fibtest๋ฅผ ์ผ๋ค.
๋น์ ์ด ์ป์ ์์๋ ๊ฒ์ฒ๋ผ ํ
์คํธ์ ๊ฒฐ์ ์ ์ด์ง๋ง C ์ปดํ์ผ๋ฌ๊ฐ ํ์ํฉ๋๋ค.
์๋ฃ๋ ๋ฐ๋ณต ํ์๋ฅผ ๋ฌด์ํ๋ ๋จ์ผ ์ค๋ ๋ ๋ ๋ค์ค ์ค๋ ๋ ์คํ์ ์ฌ์ฉ ๋ ์๊ฐ์ ์ด์ ์ ๋ง ์ถฅ๋ ๋ค.
ํจ์น ๋ ์ปค๋์ ํ์ธํ๋ ์ข์ ๋ฐฉ๋ฒ์ @chiluk ์ ๋ง์ง๋ง ์ฌ๋ผ์ด๋ ์ค ํ๋์ ๋๋ค (์ด btw์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค) ํ ํฌ https://www.youtube.com/watch?v=UE7QX98-kO0
์ปค๋ 4.15.0-67์ ํจ์น (https://launchpad.net/ubuntu/+source/linux/4.15.0-67.76)๊ฐ์๋ ๊ฒ ๊ฐ์ง๋ง ์์ฒญ / ์ ํ์ด ํจ์ฌ ๋์ ์ผ๋ถ ํฌ๋์์ ์ฌ์ ํ ์ค๋กํ ๋ง์ด ๋ฐ์ํฉ๋๋ค. CPU ์ฌ์ฉ๋.
์์ฒญ์ด 250m๋ก ์ค์ ๋๊ณ 500m๋ก ์ ํ๋๋ ์ฝ 50ms ์ฌ์ฉ๋์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. CPU ๊ธฐ๊ฐ์ ์ฝ 50 %๊ฐ ์กฐ์ ๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.์ด ๊ฐ์ ์์ ํ ์์์๋งํผ ๋ฎ๊ณ ์์ฉ ํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ 0์ผ๋ก ๋ฎ์ถ๊ณ ์ถ์ต๋๋ค. ์ฌ์ฉ๋์ด ํ๋์ ๊ฐ๊น์์ง์ง ์๋ ๊ฒฝ์ฐ์๋ ์ ํ ์ ํํ์ง ์์์ผํฉ๋๋ค.
ํจ์น ๋ ์ ์ปค๋์ ์ฌ์ฉํ๋ ์ฌ๋์ด ์ฌ์ ํ ์ฝ๊ฐ์ ์ ํ์ด ์์ต๋๊น?
@ vgarcia-te ํจ์น ๋ ๋ชฉ๋ก๊ณผ ํจ์น๋์ง ์์ ๋ชฉ๋ก์์ ์๊ธฐ์๋ ๋๋ฌด ๋ง์ ์ปค๋์ด ์ํํ๊ณ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ๋ ๋ชจ๋ ์ปค๋ฐ์ ์ดํด๋ณด์ญ์์ค. ์๋ฐฑ. Ubuntu์ ๋ณ๊ฒฝ ๋ก๊ทธ๋ฅผ ์ฝ์ ๊ฒฐ๊ณผ 4.15๊ฐ ์์ง ํจ์น๋์ง ์์์ผ๋ฉฐ (Azure์์ ์คํ๋๋ ๊ฒฝ์ฐ mabye ์ ์ธ) ์ฐ๊ฒฐ ํ ํจ์น๊ฐ ๊ฑฐ๋ถ ๋์์์ ์ ์ ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ ๋ 4.9 ์๋ฆฌ์ฆ์ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ทธ ์ด์ ๋ kops
์ด ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์ด ์์ ๋ AMI๋ฅผ ์ธ์ ์ถ์ํ๋์ง ์๊ณ ์ถ์ต๋๋ค.
ํํธ, ๋์๊ฒ ๊ฝค ์ข์ @bobrik ์ ํ ์คํธ ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
wget https://gist.githubusercontent.com/bobrik/2030ff040fad360327a5fab7a09c4ff1/raw/9dcf83b821812064fa7fb056b8f22cbd5c4364f1/cfs.go
sudo docker run --rm -it --cpu-quota 20000 --cpu-period 100000 -v $(pwd):$(pwd) -w $(pwd) golang:1.9.2 go run cfs.go -iterations 15 -sleep 1000ms
์ ๋๋ก ์๋ํ๋ CFS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ฝ๋ฉ ์๊ฐ์ ํญ์ 5ms์ ๋๋ค. ์์ ์ซ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ํ ์ํฅ์๋ฐ๋ ์ปค๋๋ก 99ms์ ๋ ์ฝ๋ฉ ์๊ฐ์ ์์ฃผ ๋ณผ ์ ์์ต๋๋ค. 6ms๊ฐ ๋๋ ๊ฒ์ ๋ฌธ์ ์ ๋๋ค.
@nuru ๋ฌธ์ ๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ์ฐพ๋ ์คํฌ๋ฆฝํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@justinsb ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ ํจ์น๊ฐ ์๊ฑฐ๋ KOPS ๊ฒฝ์ฐ ์ ์ํ์ญ์์ค
https://github.com/kubernetes/kops/blob/master/channels/stable
๋ฐํ ๋ ๋ฌธ์ : https://github.com/kubernetes/kops/issues/8954
https://github.com/kubernetes/kubernetes/issues/67577#issuecomment -617586330
์ ๋ฐ์ดํธ : kops 1.15 ์ด๋ฏธ์ง์์ ํ ์คํธ๋ฅผ ์คํํ์ต๋๋ค. ๋ถํ์ํ ์ ํ์ด ์์ต๋๋ค. https://github.com/kubernetes/kops/issues/8954#issuecomment -617673755
๋๋ฃจ
2020/04/22 11:02:48 [0] burn took 5ms, real time so far: 5ms, cpu time so far: 6ms
2020/04/22 11:02:49 [1] burn took 5ms, real time so far: 1012ms, cpu time so far: 12ms
2020/04/22 11:02:50 [2] burn took 5ms, real time so far: 2017ms, cpu time so far: 18ms
2020/04/22 11:02:51 [3] burn took 5ms, real time so far: 3023ms, cpu time so far: 23ms
2020/04/22 11:02:52 [4] burn took 5ms, real time so far: 4028ms, cpu time so far: 29ms
2020/04/22 11:02:53 [5] burn took 5ms, real time so far: 5033ms, cpu time so far: 35ms
2020/04/22 11:02:54 [6] burn took 5ms, real time so far: 6038ms, cpu time so far: 40ms
2020/04/22 11:02:55 [7] burn took 5ms, real time so far: 7043ms, cpu time so far: 46ms
2020/04/22 11:02:56 [8] burn took 5ms, real time so far: 8049ms, cpu time so far: 51ms
2020/04/22 11:02:57 [9] burn took 5ms, real time so far: 9054ms, cpu time so far: 57ms
2020/04/22 11:02:58 [10] burn took 5ms, real time so far: 10059ms, cpu time so far: 63ms
2020/04/22 11:02:59 [11] burn took 5ms, real time so far: 11064ms, cpu time so far: 69ms
2020/04/22 11:03:00 [12] burn took 5ms, real time so far: 12069ms, cpu time so far: 74ms
2020/04/22 11:03:01 [13] burn took 5ms, real time so far: 13074ms, cpu time so far: 80ms
2020/04/22 11:03:02 [14] burn took 5ms, real time so far: 14079ms, cpu time so far: 85ms
๊ทธ ๊ฒฐ๊ณผ๋
Linux <servername> 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
์ฐ๋ถํฌ 18.04์ ๊ธฐ๋ณธ ์ต์ ์์ ์ฐ๋ถํฌ ์ปค๋์ ๋๋ค.
๊ทธ๋์ ํจ์น ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@zerkms Ubuntu 18.04์์ ํ
์คํธ๋ฅผ ์ด๋์์ ์คํ ํ์ต๋๊น? ํจ์น๊ฐ Azure ์ฉ ์ปค๋๋ก๋ง ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค. Ubuntu linux
ํจํค์ง์ ์ ์ฉ๋ ์์น๋ฅผ ์๋ ค์ฃผ๋ ๋ฆด๋ฆฌ์ค ๋
ธํธ๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉด ๊ณต์ ํ์ญ์์ค. ์ฐพ์ ์ ์์ต๋๋ค.
์ด ํ ์คํธ๋ CoreOS์์๋ ๋ฌธ์ ๋ฅผ ์ฌํ ํ ์ ์์์ต๋๋ค. ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ CFS ์ค์ผ์ค๋ง์ด ์ ์ญ ์ ์ผ๋ก ๋นํ์ฑํ๋์์ ์ ์์ต๋๋ค.
๋๋ฃจ
Ubuntu 18.04์์ ํ ์คํธ๋ฅผ ์ด๋์์ ์คํ ํ์ต๋๊น?
๋ด ์๋ฒ ์ค ํ๋.
๋๋ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ํ์ธํ์ง ์์๊ณ , ๋ฌด์์ ์ฐพ์์ผํ ์ง์กฐ์ฐจ ํ์ ํ์ง ๋ชปํฉ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ชจ๋ ์ฌ๋๋ค์ด ๊ฐ์ง๊ณ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์ปค๋์ ๋๋ค. ๐คท
ํจ์น๋ ์ฐ๋ถํฌ ์ค ์ปค๋ git์ ์์ด์ผํฉ๋๋ค.
https://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/commit/?id=aadd794e744086fb50cdc752d54044fbc14d4adb
์ฌ๊ธฐ์ ๊ทธ๊ฒ์ ๊ดํ ์ฐ๋ถํฌ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1832151
๋ฐ์ด์ค๋์์ ๋ฐฉ์ถ๋์ด์ผํฉ๋๋ค.
apt-get source linux
ํ์ฌ ํ์ธํ๊ณ ๋ค์ด๋ก๋ ํ ์์ค ์ฝ๋๋ฅผ ์ฒดํฌ์ธ ํ ์ ์์ต๋๋ค.
@zerkms "์ด๋์์ ํ ์คํธ๋ฅผ ์คํ ํ์ต๋๊น?"๋ผ๋ ๋ง์ ์ฌ๋ฌด์ค์ ์๋ฒ์์ต๋๊น? GCP, AWS, Azure ๋๋ ๋ค๋ฅธ ๊ณณ์ ์๋ฒ
๋ถ๋ช
ํ Ubuntu๊ฐ ๋ฐฐํฌ๋๊ณ ์ ์ง๋๋ ๋ฐฉ์์ ๋ํด ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ด ๋ง์ด ์์ต๋๋ค. ๊ทํ์ uname -a
์ถ๋ ฅ๋ ํผ๋ ์ค๋ฝ์ต๋๋ค. Ubuntu ๋ฆด๋ฆฌ์ค ๋
ธํธ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ ์ด ์์ต๋๋ค.
18.04.4๋ 18.04.3์ v5.0 ๊ธฐ๋ฐ ์ปค๋์์ ์ ๋ฐ์ดํธ ๋ v5.3 ๊ธฐ๋ฐ Linux ์ปค๋๊ณผ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
๋ํ 18.04.4๊ฐ 2020 ๋ 2 ์ 12 ์ผ์ ์ถ์๋์๋ค๊ณ ๋งํฉ๋๋ค. ์ถ๋ ฅ์ ๋ฐ๋ฅด๋ฉด 2020 ๋ 4 ์ 1 ์ผ ์ปดํ์ผ ๋ v4.15 ์ปค๋์ ์คํํ๊ณ ์์ต๋๋ค.
@juliantaylor ์ ๋ Ubuntu ์๋ฒ ๋ Git ์ ์ฅ์์ ๋ณต์ฌ๋ณธ์ด ์์ผ๋ฉฐ aadd794e7440 ๊ณผ ๊ฐ์ ํน์ ์ปค๋ฐ์ด ๊ฒ์ ๋ ์์ ์ ์ธ ์ปค๋๋ก ๋ง๋ ์์น๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ ๋๋ค. ๋ฐฉ๋ฒ์ ์๋ ค ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ฐ์น ํจ๋ ๋ฒ๊ทธ ๋๊ธ์ ๋ณด๋ฉด
๊ทธ๋ฌ๋์ด ํน์ ํจ์น ( sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
)๋ ์๋์ ๋์ด๋์ง ์์ต๋๋ค.
๋ํ Ubuntu 18.04.4 ์ถ์ ๋ ธํธ ์ '1832151'์ด ํ์๋์ง ์์ต๋๋ค.
์ด์ ์๊ฒฌ ์ 4.15.0-67.76์์ ํจ์น๋์๋ค๊ณ ๋งํ์ง๋ง linux-image-4.15.0-67-generic
ํจํค์ง๊ฐ ๋ณด์ด์ง ์์ต๋๋ค.
์ ๋ ์ฐ๋ถํฌ์ ์ ๋ฌธ๊ฐ์๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๊ณ ์ด ํจ์น ์ถ์ ์ด ์ฉ๋ฉ ํ ์ ์์ ์ ๋๋ก ์ด๋ ต์ต๋๋ค.
์ด ํจ์น๊ฐ ์ค์ ๋ก 18.04์ ํ์ฌ ๋ฒ์ ์ธ Ubuntu 18.04.4์ ํฌํจ๋์๋ค๊ณ ํ์ ํ์ง ๋ชปํ๋ ์ด์ ๋ฅผ ์ด์ ์ดํดํ์๊ธฐ ๋ฐ๋๋๋ค. ๋ด _ ์ต๊ณ ์ ์ถ์ธก _์ 18.04.4๊ฐ ์ถ์ ๋ ํ ์ปค๋ ์ ๋ฐ์ดํธ๋ก ์ถ์๋์์ผ๋ฉฐ Ubuntu ์ปค๋์ด 4.15.0-69 ์ด์์๋ณด๊ณ ํ๋ ๊ฒฝ์ฐ ํฌํจ๋์์ ์ ์์ง๋ง 18.04.4๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ ๋ฐ์ดํธํ์ง ์๋ ๊ฒฝ์ฐ, ํจ์น๊ฐ ์์ต๋๋ค.
๋ฐฉ๊ธ ๋ฐ์ดํฐ ์ผํฐ์ ๋ฒ ์ด ๋ฉํ ์๋ฒ์์ ์ปค๋ 4.15.0-72
์์ Go ํ
์คํธ (๋งค์ฐ ์ ์ฉํจ)๋ฅผ ์คํํ๋๋ฐ ํจ์น๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
2020/04/22 21:24:27 [0] burn took 5ms, real time so far: 5ms, cpu time so far: 7ms
2020/04/22 21:24:28 [1] burn took 5ms, real time so far: 1010ms, cpu time so far: 13ms
2020/04/22 21:24:29 [2] burn took 5ms, real time so far: 2015ms, cpu time so far: 20ms
2020/04/22 21:24:30 [3] burn took 5ms, real time so far: 3020ms, cpu time so far: 25ms
2020/04/22 21:24:31 [4] burn took 5ms, real time so far: 4025ms, cpu time so far: 32ms
2020/04/22 21:24:32 [5] burn took 5ms, real time so far: 5030ms, cpu time so far: 38ms
2020/04/22 21:24:33 [6] burn took 5ms, real time so far: 6036ms, cpu time so far: 43ms
2020/04/22 21:24:34 [7] burn took 5ms, real time so far: 7041ms, cpu time so far: 50ms
2020/04/22 21:24:35 [8] burn took 5ms, real time so far: 8046ms, cpu time so far: 56ms
2020/04/22 21:24:36 [9] burn took 5ms, real time so far: 9051ms, cpu time so far: 63ms
2020/04/22 21:24:37 [10] burn took 5ms, real time so far: 10056ms, cpu time so far: 68ms
2020/04/22 21:24:38 [11] burn took 5ms, real time so far: 11061ms, cpu time so far: 75ms
2020/04/22 21:24:39 [12] burn took 5ms, real time so far: 12067ms, cpu time so far: 81ms
2020/04/22 21:24:40 [13] burn took 5ms, real time so far: 13072ms, cpu time so far: 86ms
2020/04/22 21:24:41 [14] burn took 5ms, real time so far: 14077ms, cpu time so far: 94ms
๋์ผํ ์ ํ์ ์๋ฒ์์ ์ปค๋ 4.9.164
์์ ๋์ผํ ์คํ์ด 5ms์ ๊ฑธ์ณ ๋ฒ์ง์ ๋ณด์ฌ์ค๋๋ค.
2020/04/22 21:24:41 [0] burn took 97ms, real time so far: 97ms, cpu time so far: 8ms
2020/04/22 21:24:42 [1] burn took 5ms, real time so far: 1102ms, cpu time so far: 12ms
2020/04/22 21:24:43 [2] burn took 5ms, real time so far: 2107ms, cpu time so far: 16ms
2020/04/22 21:24:44 [3] burn took 5ms, real time so far: 3112ms, cpu time so far: 24ms
2020/04/22 21:24:45 [4] burn took 83ms, real time so far: 4197ms, cpu time so far: 28ms
2020/04/22 21:24:46 [5] burn took 5ms, real time so far: 5202ms, cpu time so far: 32ms
2020/04/22 21:24:47 [6] burn took 94ms, real time so far: 6297ms, cpu time so far: 36ms
2020/04/22 21:24:48 [7] burn took 99ms, real time so far: 7397ms, cpu time so far: 40ms
2020/04/22 21:24:49 [8] burn took 100ms, real time so far: 8497ms, cpu time so far: 44ms
2020/04/22 21:24:50 [9] burn took 5ms, real time so far: 9503ms, cpu time so far: 52ms
2020/04/22 21:24:51 [10] burn took 5ms, real time so far: 10508ms, cpu time so far: 60ms
2020/04/22 21:24:52 [11] burn took 5ms, real time so far: 11602ms, cpu time so far: 64ms
2020/04/22 21:24:53 [12] burn took 5ms, real time so far: 12607ms, cpu time so far: 72ms
2020/04/22 21:24:54 [13] burn took 5ms, real time so far: 13702ms, cpu time so far: 76ms
2020/04/22 21:24:55 [14] burn took 5ms, real time so far: 14707ms, cpu time so far: 80ms
๊ทธ๋์ ๋ด ๋ฌธ์ ๋ ์ปค๋์ด ํจ์น ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฌ์ ํ CPU ์ค๋กํ ๋ง์ด ๋ณด์ธ๋ค๋ ๊ฒ์ ๋๋ค.
@Nuru ๋ง์, ์ฃ์กํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฌ๋ฌด์ค์์ ํธ์คํ ๋๋ ๋ฒ ์ด ๋ฉํ ์๋ฒ์์ต๋๋ค.
๋ํ 18.04.4๊ฐ 2020 ๋ 2 ์ 12 ์ผ์ ์ถ์๋์๋ค๊ณ ๋งํฉ๋๋ค. ์ถ๋ ฅ์ ๋ฐ๋ฅด๋ฉด 2020 ๋ 4 ์ 1 ์ผ ์ปดํ์ผ ๋ v4.15 ์ปค๋์ ์คํํ๊ณ ์์ต๋๋ค.
์ด๋ ์๋ฒ LTS์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ต์ ์ปค๋์ ์ฌ์ฉํ๋ ค๋ฉด HWE๋ฅผ ๋ช ์ ์ ์ผ๋ก ์ตํธ ์ธํด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฉ์ธ ๋ผ์ธ ๋ง ์คํํ๋ฉด๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฉ์ธ ๋ผ์ธ ์ปค๋๊ณผ HWE ์ปค๋ ๋ชจ๋ ์ ๊ธฐ์ ์ผ๋ก ๋ฆด๋ฆฌ์ค๋๋ฏ๋ก ์ต๊ทผ์ ๋น๋ ๋ ์ปค๋์ด ์๋ค๊ณ ์์ฌ๋๋ ๊ฒ์ ์์ต๋๋ค. http://changelogs.ubuntu.com/changelogs/pool/main/l/linux-meta/linux-meta_4.15.0.96.87/ ๋ณ๊ฒฝ ๋ก๊ทธ
@zerkms ์ ๋ณด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฌ์ ํ ํผ๋ ์ค๋ฝ์ง๋ง ์ด๊ณณ์ ๋๋ฅผ ๊ต์ก ํ ๊ณณ์ด ์๋๋๋ค.
@ vgarcia-te ์ปค๋์ด ํจ์น ๋ ๊ฒ ๊ฐ์ผ๋ฉด์ด ๋ฒ๊ทธ๋ก ์ธํ ์ ํ์ด ์๋๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋งํ ๋ ์ฉ์ด๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์์ฒญ์ด 250m๋ก ์ค์ ๋๊ณ 500m๋ก ์ ํ๋๋ ์ฝ 50ms ์ฌ์ฉ๋์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. CPU ๊ธฐ๊ฐ์ ์ฝ 50 %๊ฐ ์กฐ์ ๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.์ด ๊ฐ์ ์์ ํ ์์์๋งํผ ๋ฎ๊ณ ์์ฉ ํ ์ ์์ต๋๊น?
Kubernetes CPU ๋ฆฌ์์ค๋ CPU ๋จ์๋ก ์ธก์ ๋ฉ๋๋ค. 1์ ์ ์ฒด CPU 1 ๊ฐ์ 100 %๋ฅผ ์๋ฏธํ๊ณ 1m์ 1 CPU์ 0.1 %๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ "500m"์ ์ ํ์ 0.5 CPU๋ฅผ ํ์ฉํฉ๋๋ค.
CFS์ ๊ธฐ๋ณธ ์์ฝ ๊ธฐ๊ฐ์ 100ms์ด๋ฏ๋ก ์ ํ์ CPU 0.5 ๊ฐ๋ก ์ค์ ํ๋ฉด ํ๋ก์ธ์ค๊ฐ 100ms๋ง๋ค 50ms์ CPU๋ก ์ ํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๊ฐ์ด๋ฅผ ์ด๊ณผํ๋ ค๊ณ ํ๋ฉด ์ ํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๊ฐ ์ผ๋ฐ์ ์ผ๋ก ๋จ์ผ ํจ์ค์์ 50ms ์ด์ ์คํ๋๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ์ค์ผ์ค๋ฌ์ ์ํด ์ ํ ๋ ๊ฒ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค.
@Nuru ๊ทธ๊ฒ ๋ง์ด ๋๊ฒ ์ง๋ง, ๊ธฐ๋ณธ CPU ๊ธฐ๊ฐ์ด 100ms๋ผ๋ ์ ์ ๊ฐ์ํ ๋ ํ๋ก์ธ์ค์ 1 ๊ฐ์ CPU๊ฐ ํ ๋น ๋ ๊ฒฝ์ฐ ํด๋น ํ๋ก์ธ์ค๊ฐ ๋จ์ผ ํจ์ค์์ 100ms ์ด์ ์คํ๋๋ ๊ฒฝ์ฐ ์ค๋กํ ๋ง๋ฉ๋๊น?
์ด๊ฒ์ ๊ธฐ๋ณธ CPU ๊ธฐ๊ฐ์ด 100ms ์ธ Linux์์ ๋จ์ผ ํจ์ค์์ 100ms ์ด์ ์คํ๋๋ ์ ํ์ด์๋ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์ค๋กํ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
๋จ์ผ ํจ์ค์์ 100ms ์ด์ ๊ฑธ๋ฆฌ์ง ๋ง ๋๋จธ์ง ์๊ฐ ๋์ ์ ํด ์ํ ์ธ ํ๋ก์ธ์ค์ ๋ํ ์ข์ ์ ํ ๊ตฌ์ฑ์ ๋ฌด์์ ๋๊น?
@ vgarcia-te๊ฐ ๋ฌผ์๋ค
๊ธฐ๋ณธ CPU ๊ธฐ๊ฐ์ด 100ms๋ผ๊ณ ๊ฐ์ ํ ๋ ํ๋ก์ธ์ค์ 1 ๊ฐ์ CPU๊ฐ ํ ๋น ๋ ๊ฒฝ์ฐ ํด๋น ํ๋ก์ธ์ค๊ฐ ๋จ์ผ ํจ์ค์์ 100ms ์ด์ ์คํ๋๋ ๊ฒฝ์ฐ ์ ํ๋ฉ๋๊น?
๋ฌผ๋ก ์ผ์ ์ ์์ฒญ๋๊ฒ ๋ณต์กํด์ ์๋ฒฝํ ๋ต์ ๋๋ฆด ์๋ ์์ง๋ง ๊ฐ๋จํ ๋ต์ ์๋์ค์ ๋๋ค. ๋ ์์ธํ ์ค๋ช ์ ์ฌ๊ธฐ ์ ์ฌ๊ธฐ์ ์์ต๋๋ค .
๋ชจ๋ ์ ๋์ค ํ๋ก์ธ์ค๋ ์๊ฐ ์กฐ๊ฐ์ ๊ธฐ๋ฐ์ผ๋กํ๋ ์ ์ ํ ์ค์ผ์ค๋ง์ ์ ์ฉ์๋ฐ์ต๋๋ค. ๋จ์ผ ์ฝ์ด ๋จ์ผ CPU ์์ ์๋ ์ฌ์ ํ 30 ๊ฐ์ ํ๋ก์ธ์ค๊ฐ "๋์์"์คํ๋์์ต๋๋ค. ์ผ์ด๋๋ ์ผ์ ๊ทธ๋ค์ด ์ ์ ๋ฐ๊ณ ์ ์ ์๊ฑฐ๋ ์๊ฐ ์กฐ๊ฐ์ด ๋๋ ๋ ๋ค๋ฅธ ๊ฒ์ด ์คํ๋ ์ ์๋๋ก ๋๊ธฐ ์ํ๊ฐ๋๋ ๊ฒ์ ๋๋ค.
ํ ๋น๋์ด์๋ CFS๋์ด๋ฅผ ํ ๋จ๊ณ ๋ ๋ฐ์ ์ํต๋๋ค.
ํ์ง๋ง ํ๋ก์ธ์ค๊ฐ CPU์ 50 %๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๋งํ ๋ ์ค์ ๋ก ๋ฌด์จ ๋ง์ํ๊ณ ์์ต๋๊น? 5 ๋ถ ๋์ CPU๋ฅผ 100 % ์ก์ ๋จน๊ณ ๋ค์ 5 ๋ถ ๋์ ์ ํ ์คํ๋์ง ์๋ ํ ๊ด์ฐฎ๋ค๋ ๋ง์ ๋๊น? ์ด๋ 10 ๋ถ ๋์ 50 % ์ฌ์ฉ๋์ด์ง๋ง ๋๊ธฐ ์๊ฐ ๋ฌธ์ ๋ก ์ธํด ๋๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ ํ์ฉ๋์ง ์์ต๋๋ค.
๋ฐ๋ผ์ CFS๋ ํ ๋น๋์ ์ ์ฉํ๋ ๊ธฐ๊ฐ ์ธ "CPU ๊ธฐ๊ฐ"์ ์ ์ํฉ๋๋ค. ์ฝ์ด๊ฐ 4 ๊ฐ์ด๊ณ CPU์ฃผ๊ธฐ๊ฐ 100ms ์ธ ์์คํ ์์ ์ค์ผ์ค๋ฌ๋ ์ค์ (๋ฒฝ์๊ณ) ์๊ฐ์ 100ms ์ด์ ํ ๋นํ๊ธฐ ์ํด 400ms์ CPU ์๊ฐ์๊ฐ์ง๋๋ค. ๋ณ๋ ฌํ ํ ์์๋ ๋จ์ผ ์คํ ์ค๋ ๋๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ ํด๋น ์ค๋ ๋๋ ๊ธฐ๊ฐ ๋น ์ต๋ 100ms์ CPU ์๊ฐ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ด๋ CPU 1 ๊ฐ์ 100 %์ ๋๋ค. ํ ๋น๋์ 1 CPU๋ก ์ค์ ํ๋ฉด ์ ํ๋์ง ์์ต๋๋ค.
ํ ๋น๋์ 500m (0.5 CPU)๋ก ์ค์ ํ๋ฉด ํ๋ก์ธ์ค๊ฐ 100ms๋ง๋ค ์คํ๋๋ ๋ฐ 50ms๊ฐ ๊ฑธ๋ฆฝ๋๋ค. 100ms ๊ธฐ๊ฐ์ 50ms ๋ฏธ๋ง์ ์ฌ์ฉํ๋ฏ๋ก ์ ํ๋์ง ์์์ผํฉ๋๋ค. Ayn 100ms ๊ธฐ๊ฐ์ 50ms๋ฅผ ์คํ ํ ํ์๋ ์๋ฃ๋์ง ์์ผ๋ฉฐ ๋ค์ 100ms ๊ธฐ๊ฐ๊น์ง ์ค๋กํ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ง์ฐ ์๊ฐ (์คํํ ์์์ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผํ๋ ์๊ฐ)๊ณผ ํธ๊น (๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ์๋๋ก ํ์ฉ๋๋ ์๊ฐ) ์ฌ์ด์ ๊ท ํ์ ์ ์งํฉ๋๋ค.
@Nuru ๋ด ์ฌ๋ผ์ด๋๊ฐ ์ ํํฉ๋๋ค. ๋๋ ์ฐ๋ถํฌ ๊ฐ๋ฐ์์ด๊ธฐ๋ํ๋ค * (์ง๊ธ์ ์ฌ๊ฐ ์๊ฐ์๋ง). ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์์ค๋ฅผ ์ฝ๊ณ git blame + tag --contains๋ฅผ ํ์ธํ์ฌ ํจ์น๊ฐ ๊ด์ฌ์๋ ์ปค๋ ๋ฒ์ ์ ๋๋ฌํ๋์๊ธฐ๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ๋๋ค.
@chiluk ๋๋ ๋น์ ์ ์ฌ๋ผ์ด๋๋ฅผ ๋ณด์ง ๋ชปํ์ต๋๋ค. ์์ง ๋ณธ ์ ์ด์๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด, ํจ์น๊ฐ ์ผ๋ง ์ ์ ๋์ฐฉํ๋ค๊ณ ๋งํ๋ ๊ณณ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ ๊ฑฐ์ ์ค์น์์ ๋ค์ํ ์ปค๋์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋ค์ํ CFS ์ค์ผ์ค๋ฌ ๋ฒ๊ทธ๋ฅผ ์ดํดํ๊ณ ์๊ท๋ชจ AWS ์๋ฒ์์ ์๋ํ๋ ์์ ์ ์ด๊ณ ํด์ํ๊ธฐ ์ฌ์ด ํ ์คํธ๋ฅผ ์ฐพ๋ ๋ฐ ์ฌ์ ํ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. ํ์ ๋ผ์ธ์ ์ดํดํ๋ฏ์ด 2014 ๋ Linux ์ปค๋ v3.16-rc1์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ์ต๋๋ค.
[51f2176d74ac](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=51f2176d74ac) sched/fair: Fix unlocked reads of some cfs_b->quota/period
์ด๋ก ์ธํด ๋ค์ํ CFS ์กฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. kops
Kubernetes ํด๋ฌ์คํฐ์์ ๋ฐ์ํ ๋ฌธ์ ๋ 4.9 ์ปค๋์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์์ด ๋ฒ๊ทธ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
51f2176d74ac
๋ 2018 ์ปค๋ v4.18-rc4์์ ๋ค์๊ณผ ๊ฐ์ด ์์ ๋์์ต๋๋ค.
[512ac999](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=512ac999d2755d2b7109e996a76b6fb8b888631d) sched/fair: Fix bandwidth timer clock drift condition
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ @chiluk ๋ฒ๊ทธ๋ฅผ ๋์ ํ์ต๋๋ค.
[de53fd7ae](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=de53fd7aedb100f03e5d2231cfce0e4993282425) sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
๋ฌผ๋ก ์ปค๋ ํจ์น๊ฐ ๋ฐฐํฌํ ์ ์ฒด์์ ์ถ์ ํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ Chiluk ๋๋ ๋ค๋ฅธ ํ ์ฌ๋์ ์๋ชป์ด ์๋๋๋ค. ๊ทธ๋๋ ์ฌ์ ํ ์ค๋ง์ค๋ฝ๊ณ ํผ๋ ์ค๋ฝ์ต๋๋ค.
์๋ฅผ ๋ค์ด Debuan buster 10 (AWS AMI debian-10-amd64-20191113-76
)์์ ์ปค๋ ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ด๋ณด๊ณ ๋ฉ๋๋ค.
Linux ip-172-31-41-138 4.19.0-6-cloud-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux
๋ด๊ฐ ์ ์์๋ ํ,์ด ์ปค๋์๋ 51f2176d74ac
์ด ์์ด์ผํ๊ณ 512ac999
๊ฐ ์์ด์ผํ๋ฏ๋ก 512ac999
์ค๋ช
๋ ํ
์คํธ์ ์คํจํด์ผํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. (๋ฆฌ๋
์ค ์ปค๋ 4.10์์ ์ ์ง์ ์ผ๋ก ์
๊ทธ๋ ์ด๋๋์๊ณ ๋ณ๊ฒฝ ๋ก๊ทธ์ ํด๋น ํจ์น์ ๋ํ ์ธ๊ธ์ด ์๊ธฐ ๋๋ฌธ์ 512ac999
๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.) ๊ทธ๋ฌ๋ 4 cpu AWS VM์์๋ ์คํจํ์ง ์์ต๋๋ค. Chiluk์ fibtest
๋๋ Bobrik์ CFS ๋ธ๊พน์ง ํ
์คํธ๋ ๋ค๋ฅธ ์์
์ด ์งํ ์ค์์ ๋ํ๋
๋๋ค.
๋๋ Chiluk์ ํจ์น๋ฅผ ๋ฐ๊ธฐ ์ ์ CoreOS์์ ์ค์ผ์ค๋ง ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๋ฐ ๋น์ทํ ๋ฌธ์ ๊ฐ์์์ต๋๋ค.
ํ์ฌ ์ ์๊ฐ์ Bobrik์ ํ
์คํธ๊ฐ ์ฃผ๋ก 51f2176d74ac
๋ํ ํ
์คํธ์ด๊ณ , ์ ๊ฐ ์ฌ์ฉ์ค์ธ Debian buster 10 AMI _does_๋ 512ac999
๊ฐ ์์ผ๋ฉฐ ๋ณ๊ฒฝ ๋ก๊ทธ์์ ๋ช
์ ์ ์ผ๋ก ํธ์ถ๋์ง ์์์ผ๋ฉฐ fibtest
๋ ์ฝ์ด๊ฐ ๋ช ๊ฐ์ธ ์ปดํจํฐ์์ ๋งค์ฐ ๋ฏผ๊ฐํ ํ
์คํธ๊ฐ ์๋๋๋ค.
4 ์ฝ์ด CPU๋ ์์ ๋ ๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ ์ ์์ต๋๋ค.
chiluks kubecon talk (https://www.youtube.com/watch?v=UE7QX98-kO0)์ ์ค๋ช ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด 40 cpus ์ด์์ ๋ ํฐ ์ปดํจํฐ์์๋ง ์ฌํ ๊ฐ๋ฅํด์ผํฉ๋๋ค.
์ฃผ๋ณ์๋ ๋ง์ ์ปค๋ ๋ฒ์ ์ด ์์ผ๋ฉฐ ๋ง์ ํจ์น ๋ฐ ํจ์น ๋๋๋ฆฌ๊ธฐ๊ฐ ์งํ ์ค์
๋๋ค. ๋ณ๊ฒฝ ๋ก๊ทธ์ ๋ฒ์ ๋ฒํธ๋ ์ง๊ธ๊น์ง๋ง ์๋ ค์ค๋๋ค.
์์ฌ์ค๋ฌ์ด ๊ฒฝ์ฐ ์ ์ผํ ์ ๋ขฐํ ์์๋ ๋ฐฉ๋ฒ์ ์์ค ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์ฌ๊ธฐ์ ๋งํฌ ๋ ํจ์น์ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋น๊ตํ๋ ๊ฒ์
๋๋ค.
90 ์ผ ๋์ ํ๋์ด ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๋ถ์คํด์ง๋๋ค.
/remove-lifecycle stale
ํ์ฌ ์ต์ ๋ฌธ์ ๋ก ํ์ํฉ๋๋ค.
๋นํ์ฑ ๋ฌธ์ ๋ ์ถ๊ฐ๋ก 30 ์ผ ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฉ๊ณ ๊ฒฐ๊ตญ ์ข
๋ฃ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ง๊ธ ์ข
๋ฃํด๋ ์์ ํ๋ค๋ฉด /close
ํ์ฌ ์ข
๋ฃํ์ธ์.
sig-testing, kubernetes / test-infra ๋ฐ / ๋๋ fejta์ ํผ๋๋ฐฑ์
/ lifecycle stale
/ remove-lifecycle stale
์ด ์ค๋ ๋์ ์๋ถ๋ถ์์ ์ธ๊ธ ํ ํ ์คํธ๋ ์ค์ ๋ก ๋ฌธ์ ๋ฅผ ์ฌํํ์ง ๋ชปํ์ง๋ง (๋ช ๋ฒ์ ๋ฒ์ 5ms ์ด์ ๊ฑธ๋ฆฌ์ง ๋ง ๊ทธ์ค 0.01 %์ ๊ฐ์ต๋๋ค) ์ฐ๋ฆฌ์ cfs ์ค๋กํ ๋ง ๋ฉํธ๋ฆญ์ ์ฌ์ ํ โโ์ ๋นํ ์์ ์ค๋กํ ๋ง์ ๋ณด์ฌ์ค๋๋ค. ํด๋ฌ์คํฐ ์ ๋ฐ์ ๊ฑธ์ณ ์๋ก ๋ค๋ฅธ ์ปค๋ ๋ฒ์ ์ด ์์ง๋ง ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ ๊ฐ์ง ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Debian 4.19.67-2+deb10u2~bpo9+1 (2019-11-12)
5.4.38
์ ์๋ ๋ฐฑ ํฌํธ์ด ๋ฒ์ ์์ ๋ ๋ฒ๊ทธ๊ฐ ๋ชจ๋ ์์ ๋์ด์ผํ๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ทธ๋์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ํ ์คํธ๊ฐ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์์ง ๊ถ๊ธํฉ๋๋ค. 16 ์ฝ์ด์ 36 ์ฝ์ด๊ฐ์๋ ์ปดํจํฐ์์ ํ ์คํธ ์ค์ ๋๋ค. ํ ์คํธ๊ฐ ์ ํจํ๊ธฐ ์ํด ๋ ๋ง์ ์ฝ์ด๊ฐ ํ์ํ์ง ํ์คํ์ง ์์ง๋ง ์ด๋ฌํ ํด๋ฌ์คํฐ์์ ์ค๋กํ ๋ง์ด ์ฌ์ ํ ํ์๋๋ฏ๋ก ...
์ด ๋ฌธ์ ๋ฅผ ๋ซ๊ณ ๋ฌธ์ ์ ์ง๋ฉด ํ ์ฌ๋๋ค์๊ฒ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์์ํ๋๋ก ์์ฒญํด์ผํฉ๋๊น? ์ฌ๊ธฐ์ ์คํธ์ ๋ํ๋ฅผ ๋งค์ฐ ์ด๋ ต๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
^ ๋์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง์ ์ผ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค.
/๋ซ๊ธฐ
์์ ์๊ฒฌ์ ๋ฐ๋ผ. ํ์์ ๋ฐ๋ผ ์๋ก์ด ํธ๋ฅผ์ฌ์ญ์์ค.
@dims :์ด ๋ฌธ์ ๋ฅผ ๋ง๋ฌด๋ฆฌํฉ๋๋ค.
์ ๋ํ ์๋ต ์ด :
/๋ซ๊ธฐ
์์ ์๊ฒฌ์ ๋ฐ๋ผ. ํ์์ ๋ฐ๋ผ ์๋ก์ด ํธ๋ฅผ์ฌ์ญ์์ค.
PR ๋๊ธ์ ์ฌ์ฉํ์ฌ ๋์ ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ kubernetes / test-infra ์ ์ฅ์์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ธ์.
์ด ์ด์์ ๋ํ ํ์ ์ด์๋ฅผ ์๋ ค ์ฃผ์๋ฉด ์ด์๋ฅผ ๊ตฌ๋ ํ ์ฌ๋๋ค์ด ์๋ก์ด ์ด์๋ฅผ ๊ตฌ๋ ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํจ์น๋ ์ค๋ ์์นจ์ ๋๋ฌ์ต๋๋ค.
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=de53fd7aedb100f03e5d2231cfce0e4993282425
Torvald์ ํธ๋ฆฌ์ ๋๋ฌํ๋ฉด Linux ์์ ํฌํจ์ ์ํด ์ ์ถํ๊ณ ์ดํ ์ฃผ์ ๋ฐฐํฌํ (Redhat / Ubuntu)์ ์ ์ถํฉ๋๋ค. ๋ค๋ฅธ ๊ฒ์ ๊ด์ฌ์ด ์๊ณ ๊ทธ๋ค์ด ๋ฆฌ๋ ์ค ์์ ํจ์น๋ฅผ ๋ฐ๋ฅด์ง ์๋๋ค๋ฉด ์ง์ ์ ์ถํ๋ ๊ฒ์ด ์ข์ต๋๋ค.