์ ์๋ ค์ง Linux ์ปค๋ ๊ฐ๋ฐ์์ด์ CFS(Completely Fair Scheduler) ์์ ์ค์ผ์ค๋ฌ์ ์ ์์ธ Ingo Molnar๋ Linux ์ปค๋ ๊ฐ๋ฐ์ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ๋ํ ํ ๋ก ์ ์ํด ์ปค๋ ์์ค์ ์๋ ๋ชจ๋ ํ์ผ์ ์ ๋ฐ ์ด์์ ์ํฅ์ ๋ฏธ์น๋ ์ผ๋ จ์ ํจ์น๋ฅผ ์ ์ํ์ต๋๋ค. ์ค์ ์ ๋ฐ๋ผ ์ ์ฒด ์ปค๋ ์ฌ๊ตฌ์ถ ์๋๊ฐ 50-80% ํฅ์๋ฉ๋๋ค. ๊ตฌํ๋ ์ต์ ํ๋ ์ปค๋ ๊ฐ๋ฐ ์ญ์ฌ์ ๊ฐ์ฅ ํฐ ๋ณ๊ฒฝ ์ฌํญ ์ธํธ ์ถ๊ฐ์ ๊ด๋ จ์ด ์๋ค๋ ์ ์์ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. 2297๊ฐ์ ํจ์น๊ฐ ํ ๋ฒ์ ํฌํจ๋๋๋ก ์ ์๋์ด 25๊ฐ ์ด์์ ํ์ผ("ํฌํจ ํค๋ ํ์ผ 10๊ฐ) ์ด์์ ๋ณ๊ฒฝํ์ต๋๋ค. /โ ๋ฐ โarch/*/include/โ ๋๋ ํฐ๋ฆฌ "๋ฐ ์์ค ํ ์คํธ๊ฐ ํฌํจ๋ 15๊ฐ์ ํ์ผ).
ํค๋ ํ์ผ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค. XNUMX๋ ์ด ๋๋ ์ปค๋ ๊ฐ๋ฐ ๊ณผ์ ์์ ํค๋ ํ์ผ์ ์ํ๋ ํ์ผ๋ค ์ฌ์ด์ ์๋ง์ ์ํธ ์ข ์์ฑ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ฐ์ธํ ๋ชจ์ต์ ๋ ๊ฒ ๋์์ต๋๋ค. ํค๋ ํ์ผ ๊ตฌ์กฐ ์กฐ์ ์๋ XNUMX๋ ์ด์์ด ๊ฑธ๋ ธ์ผ๋ฉฐ ๊ณ์ธต ๊ตฌ์กฐ์ ์ข ์์ฑ์ ๋ํ ์๋นํ ์ฌ์์ ์ด ํ์ํ์ต๋๋ค. ๊ตฌ์กฐ ์กฐ์ ์ค์ ๋ค์ํ ์ปค๋ ํ์ ์์คํ ์ ๋ํ ์ ํ ์ ์์ API๋ฅผ ๋ถ๋ฆฌํ๋ ์์ ์ด ์ํ๋์์ต๋๋ค.
๋ณ๊ฒฝ ์ฌํญ ์ค์๋ ์์ ํค๋ ํ์ผ์ ์๋ก ๋ถ๋ฆฌํ๊ณ , ํค๋ ํ์ผ์ ์ฐ๊ฒฐํ๋ ์ธ๋ผ์ธ ํจ์๋ฅผ ์ ๊ฑฐํ๊ณ , ํค๋ ํ์ผ์ ์ ํ ๋ฐ API๋ณ๋ก ๋ถ๋ฆฌํ๊ณ , ํค๋ ํ์ผ์ ๋ณ๋ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ณด์ฅํฉ๋๋ค. (์ฝ 80๊ฐ ํ์ผ์๋ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ฐฉํดํ๋ ๊ฐ์ ์ ์ธ ์ข ์์ฑ์ด ์์๊ณ , ๋ค๋ฅธ ํค๋ ํ์ผ), ".h" ๋ฐ ".c" ํ์ผ์ ๋ํ ์ข ์์ฑ ์๋ ์ถ๊ฐ, ํค๋ ํ์ผ์ ๋จ๊ณ๋ณ ์ต์ ํ, "CONFIG_KALLSYMS_FAST=y" ๋ชจ๋ ์ฌ์ฉ, C ํ์ผ์ ์ด์ ๋ธ๋ฆฌ ๋ธ๋ก์ผ๋ก ์ ํ์ ์ผ๋ก ํตํฉํ์ฌ ๊ฐ์ฒด ํ์ผ์ ์๋ฅผ ์ค์ ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ด๋ฒ ์์ ์ ํตํด ํ์ฒ๋ฆฌ ๋จ๊ณ์์ ์ฒ๋ฆฌ๋๋ ํค๋ ํ์ผ์ ํฌ๊ธฐ๋ฅผ 1~2๋ฐฐ ์ ๋ ์ค์ผ ์ ์๊ฒ ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ต์ ํ ์ ์๋ โlinux/gfp.hโ ํค๋ ํ์ผ์ ์ฌ์ฉํ๋ฉด 13543์ค์ ์ฝ๋๊ฐ ์ถ๊ฐ๋๊ณ 303๊ฐ์ ์ข ์ ํค๋ ํ์ผ์ด ํฌํจ๋์์ผ๋ฉฐ, ์ต์ ํ ํ์๋ ํฌ๊ธฐ๊ฐ 181์ค๊ณผ 26๊ฐ์ ์ข ์ ํ์ผ๋ก ์ค์์ต๋๋ค. ๋๋ ๋ ๋ค๋ฅธ ์: ํจ์น ์์ด โkernel/pid.cโ ํ์ผ์ ์ ์ฒ๋ฆฌํ ๋ 94์ค์ ์ฝ๋๊ฐ ํฌํจ๋๋๋ฐ, ๊ทธ ์ค ๋๋ถ๋ถ์ pid.c์์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ํค๋ ํ์ผ์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ฒ๋ฆฌ๋๋ ์ฝ๋์ ์์ด 36๋ฐฐ๋ก ์ค์ด๋ค์ด ์ฒ๋ฆฌ ๋ผ์ธ ์๊ฐ XNUMX์ค๋ก ์ค์์ต๋๋ค.
ํ
์คํธ ์์คํ
์์ "make -j96 vmlinux" ๋ช
๋ น์ผ๋ก ์ปค๋์ ์์ ํ ์ฌ๊ตฌ์ถํ์ ๋, ํจ์น ์ ์ฉ์ผ๋ก v5.16-rc7 ๋ธ๋์น์ ๋น๋ ์๊ฐ์ด 231.34์ด์์ 129.97์ด๋ก(15.5์์ 27.7 ๋น๋๋ก) ๋จ์ถ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์๊ฐ๋น), ์กฐ๋ฆฝ ์ค CPU ์ฝ์ด ์ฌ์ฉ ํจ์จ์ฑ๋ ํฅ์๋์์ต๋๋ค. ์ฆ๋ถ ๋น๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ต์ ํ ํจ๊ณผ๊ฐ ๋์ฑ ๋๋๋ฌ์ง๋๋ค. ํค๋ ํ์ผ์ ๋ณ๊ฒฝํ ํ ์ปค๋์ ๋ค์ ๋น๋ํ๋ ์๊ฐ์ด ํฌ๊ฒ ๋จ์ถ๋์์ต๋๋ค(๋ณ๊ฒฝ๋๋ ํค๋ ํ์ผ์ ๋ฐ๋ผ 112%์์ 173%๋ก). ์ต์ ํ๋ ํ์ฌ ARM64, MIPS, Sparc ๋ฐ x86(32๋นํธ ๋ฐ 64๋นํธ) ์ํคํ
์ฒ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru