์˜ค๋ผํด์€ Unbreakable Enterprise Kernel R5U2๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ผํด ํšŒ์‚ฌ ์ถœ์‹œ ์ปค๋„์˜ ๋‘ ๋ฒˆ์งธ ๊ธฐ๋Šฅ ์—…๋ฐ์ดํŠธ ๊นจ์ง€์ง€ ์•Š๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ปค๋„ R5, Red Hat Enterprise Linux์˜ ์ปค๋„์ด ํฌํ•จ๋œ ํ‘œ์ค€ ํŒจํ‚ค์ง€ ๋Œ€์‹  Oracle Linux ๋ฐฐํฌํŒ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„์€ x86_64 ๋ฐ ARM64(aarch64) ์•„ํ‚คํ…์ฒ˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ํŒจ์น˜๋กœ์˜ ๋ถ„์„์„ ํฌํ•จํ•œ ์ปค๋„ ์†Œ์Šค, ์ถœํŒ ๋œ ๊ณต๊ฐœ Oracle Git ์ €์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

Unbreakable Enterprise Kernel 5์€ ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Linux 4.14 (UEK R4๋Š” 4.1 ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ) ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ์ตœ์ ํ™” ๋ฐ ์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ RHEL์—์„œ ์‹คํ–‰๋˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ํ˜ธํ™˜์„ฑ ํ…Œ์ŠคํŠธ๋„ ๊ฑฐ์ณค์œผ๋ฉฐ Oracle ์‚ฐ์—…์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ํ•˜๋“œ์›จ์–ด์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. UEK R5U1 ์ปค๋„์„ ์‚ฌ์šฉํ•œ ์„ค์น˜ ๋ฐ src ํŒจํ‚ค์ง€ ์ค€๋น„๋œ Oracle Linux 7.5 ๋ฐ 7.6์šฉ(์œ ์‚ฌํ•œ ๋ฒ„์ „์˜ RHEL, CentOS ๋ฐ Scientific Linux์—์„œ ์ด ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์•„๋ฌด๋Ÿฐ ์žฅ์• ๋ฌผ์ด ์—†์Šต๋‹ˆ๋‹ค).

์—ด์‡  ๊ฐœ๋Ÿ‰:

  • ํŒจ์น˜๋Š” PSI(Pressure Stall Information) ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด cgroup์˜ ํŠน์ • ์ž‘์—… ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ์„ธํŠธ์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค(CPU, ๋ฉ”๋ชจ๋ฆฌ, I/O)๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. . PSI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ํ•ธ๋“ค๋Ÿฌ๋Š” ๋กœ๋“œ ํ‰๊ท ๊ณผ ๋น„๊ตํ•˜์—ฌ ์‹œ์Šคํ…œ ๋กœ๋“œ ์ˆ˜์ค€๊ณผ ์†๋„ ์ €ํ•˜ ํŒจํ„ด์„ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • cgroup2์˜ ๊ฒฝ์šฐ, NUMA ๋ฉ”๋ชจ๋ฆฌ ๋…ธ๋“œ ๋ฐ CPU์—์„œ ์ž‘์—… ๋ฐฐ์น˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” cpuset ๋ฆฌ์†Œ์Šค ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด, cpuset pseudo-FS ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ž‘์—… ๊ทธ๋ฃน์— ๋Œ€ํ•ด ์ •์˜๋œ ๋ฆฌ์†Œ์Šค๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ktask ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ƒ๋‹นํ•œ CPU ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ์ปค๋„์˜ ์ž‘์—…์„ ๋ณ‘๋ ฌํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ktask๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ๋ฒ”์œ„๋ฅผ ์ง€์šฐ๊ฑฐ๋‚˜ inode ๋ชฉ๋ก์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์˜ ๋ณ‘๋ ฌํ™”๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • DTrace์—์„œ ์ถ”๊ฐ€ ์ƒˆ๋กœ์šด ์ž‘์—… "pcap(skb,proto)"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ libpcap์„ ํ†ตํ•œ ํŒจํ‚ท ์บก์ฒ˜ ์ง€์› ์˜ˆ: "dtrace -n 'ip:::send { pcap((void *)arg0, PCAP_IP); }'";
  • ์ƒˆ๋กœ์šด ์ปค๋„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ด์›” btrfs, CIFS, ext4, OCFS2 ๋ฐ XFS ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌํ˜„ ์ˆ˜์ •;
  • ์ปค๋„ 4.19๋ถ€ํ„ฐ ์ด์›” KVM, Xen ๋ฐ Hyper-V ํ•˜์ดํผ๋ฐ”์ด์ € ์ง€์›๊ณผ ๊ด€๋ จ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ
  • ์—…๋ฐ์ดํŠธ๋จ ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ ๋ฐ NVMe ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ํ™•์žฅ๋œ ์ง€์›(์ปค๋„ 4.18์—์„œ 4.21๋กœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ „์†ก๋จ)
  • ARM ํ”Œ๋žซํผ์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ์ •์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€