Resident Resource Results 56d KO - teamswyg/laya-tools GitHub Wiki
์์ฃผ Go ํํธ ๋๊ตฌ์ ์ค์ ์๋ณต ๋น์ฉ: 56d ๊ฒฐ๊ณผ
English ยท ์๋ณธ ๊ฒฐ๊ณผ ยท ์์ฝ ์์น ยท ์ฌ์ ์ค๊ณ ยท ์คํ ๊ณํ ยท ๋ด์ธ ๊ธฐ๋ก
๋ด์ธํ 24๊ฐ ์คํ ํ์ด ๋ชจ๋ ์๋ฃ๋๋ค. ์ฌ์๋ ์์ด 25,080๊ฐ์ ๋ฐ๋ณต ์์ฒญ์ ๊ฒ์ฆํ๊ณ , ์์ ํ๋ก์ธ์ค์ lifetime peak RSS๋ 9.21875โ10.515625MiB์๋ค. ํ ๋ฒ ์ผ ๋ ์์ Go ๋๊ตฌ์ JSON ํ ์ค์ ๋ณด๋ด๊ณ ๊ฒ์ฌ ์์ ํ ์ค์ ๋ฐ๋ ์ค์ ๋น์ฉ์ ์ธก์ ํ๋ค. Laya ๋ชจ๋ธ ์ถ๋ก ยทํ์ตยท์๋ฏธ ์ ํ๋ยท์ค์ LLM ์ฌ์ฉ๋ ์ ๊ฐ์ ์ธก์ ํ ๊ฒฐ๊ณผ๋ ์๋๋ค. ์ด ๋ก์ปฌ ๊ธฐ๋ก ์์ฑ์ CI ์คํ์ ์์ ๋ค. ์ค์ CI ์๋ฃ ๋งํฌ์ ์๋ ๋ณํฉ ํ์ธ์ ๊ฒ์ฆ ๋ค ์ด์19์ ๋ณ๋ ์๋ฃ ๋๊ธ์ ๊ธฐ๋กํ๋ค.
์ฌ๋๊ณผ ์์ด์ ํธ๊ฐ ์ด ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ
๊ฐ์ ์ฌ์ฉ์๋ ์์ ํํธ ๋๊ตฌ๋ฅผ ์ฌ๋ฌ ๋ฒ ํธ์ถํ๋ ์์ด์ ํธ๋ค. ์์ฒญ๊ณผ ํ๋ณด ์ค๋ช
3๊ฐ๋ฅผ ๋ณด๋ด๋ฉด riido-shortclaim --stream์ด ๋ชจ๋ ๋จ๊ฒจ ๋ ์ฑ ๊ฒ์ฌ ์์๋ฅผ ์ ์ํ๋ค. ์ธ๋ถ์ ๋
๋ฆฝ ๊ฒ์ฌ๊ฐ ์ค์ ์๋ฏธ๋ฅผ ํ์ธํด์ผ ํ๋ฉฐ, ์๋ต์ ๊ณ์ unverified_heuristic์ด๋ค. ์ด๋ฒ ์คํ์ ์ด๋ฌํ ํธ์ถ ๊ฒฝ๋ก์ ๋น์ฉ๊ณผ ์
๋ ฅยท์ถ๋ ฅ ๋์์ ํ์ธํ๋ค.
์คํํ ๊ฒ์ fixed_order, BM25, ๋จ์ดยท์ฐ์ ๋จ์ด ์ผ์น, ์ข์ ๊ท์น์ ๋ฌดํ์ต Go ๊ธฐ์ค์ ์ด๋ค. ๋งค ์์ฒญ๋ง๋ค ์ค๋นยท๊ฒ์ฆยท์์ยทdigestยท์ถ๋ ฅ ์ง๋ ฌํ๋ฅผ ๋ค์ ์ํํ์ผ๋ฉฐ ๊ฒฐ๊ณผ cache hit๋ 0์ด๋ค. GPUยท์ธ์ฝ๋ยทLaya ๊ฐ์ค์นยท๋ชจ๋ธ ํธ์ถ์ ์ฌ์ฉํ์ง ์์๋ค. ๋ฐ๋ผ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ โLaya ๋ชจ๋ธ ์ ์ฒด๊ฐ ์ฐ๋ ๋ฉ๋ชจ๋ฆฌโ๋ก ์ฝ์ผ๋ฉด ์ ๋๋ค. Pool์ 48๊ฐ ์
๋ ฅ์ ๋ชจ๋ ์ข์ ๊ท์น ๋ฌธ๋ฒ ๋ฐ์ด์ด์ narrow_rule๋ ์ ๋ถ unsupported_rule_request๋ฅผ ๊ธฐ๋กํ๋ฉฐ BM25๋ก fallbackํ๋ค. ์ฑ๊ณตํ ์ข์ ๋ฌธ๋ฒ ๊ฒฝ๋ก์ ์ฑ๋ฅ์ ์ด๋ฒ ์๋ฃ์์ ๊ด์ธกํ์ง ์์๋ค.
๋ฐ๋ณต ๊ด์ธก๊ณผ ๋ ๋ฆฝ ์๋ฃ๋ฅผ ๊ตฌ๋ถํ๋ค
๊ธฐ์กด ๊ณต๊ฐ ์๋ณธ 72๊ฐ์์ ํ๋ณด๊ฐ ์๋ 3๊ฐ์ธ 48๊ฐ๋ง ์ ํํ๋ค. ๋๋จธ์ง 24๊ฐ๋ ์๋ ํ๋ณด ์๊ฐ 2๊ฐ ๋๋ 4๊ฐ๋ผ ์ ์ธํ์ผ๋ฉฐ, ํ๋ณด๋ฅผ ์๋ผ 3๊ฐ๋ก ๋ง์ถ์ง ์์๋ค. ์ ๊ทํ๋ ํ ์คํธ ํน์ง์ ์ค๋ณต์ 0๊ฐ์ฌ์ pool ํฌ๊ธฐ๋ 48๊ฐ๋ค. ์๋ ๋ถ๋ชจยทํ๋ณด ID์ ์์๋ corpus์ 72๊ฐ origin link์ ๋ณด์กด๋๋ค. ID์ ์ถ์ฒ๋ ์์ ํน์ง์ ๋ค์ด๊ฐ์ง ์๋๋ค.
| ์์ฒ | ์๋ ๋ถ๋ชจ | ์ ํ | ์ ์ธ |
|---|---|---|---|
๊ธฐ์กด probes-56 |
48 | 24 | 24: 2ํ๋ณด 12๊ฐ, 4ํ๋ณด 12๊ฐ |
Typed probes-56b |
24 | 24 | 0 |
| ํฉ๊ณ | 72 | 48 | 24 |
same์ ์ฒซ payload ํ๋๋ฅผ ๋ฐ๋ณตํ๊ณ , distinct๋ 48๊ฐ pool์ ์๋ ์์๋๋ก ์ํํ๋ค. ๊ฐ ๊ธฐ์ค์ ยทworkload๋ง๋ค ์ ์์ ํ๋ก์ธ์ค๋ฅผ 3ํ ์์ํด 4 ร 2 ร 3 = 24ํ์ ์คํํ๋ค. ํ๋น ์ฒซ ์๋ต 1๊ฐ + warmup 20๊ฐ + timed 1,024๊ฐ = 1,045๊ฐ๋ค. ์ ์ฒด ์ฒซ ์๋ต์ 24๊ฐ, warmup์ 480๊ฐ, timed๋ 24,576๊ฐ๋ค.
25,080ํ์ 24,576ํ๋ ๋ฐ๋ณต ์ฒ๋ฆฌยทํ์ด๋ฐ ๊ด์ธก ํ์๋ค. ์๋ก์ด ๋ ๋ฆฝ ์์ฒญ์ด๋ ํ์ตยท์ต์ข ํ๊ฐ ํ๋ณธ ์๊ฐ ์๋๋ค. ์ด๋ฒ ๋จ๊ณ์ ์ ๋ ๋ฆฝ ์์ฒญ, fit, ๋ชจ๋ธ ํธ์ถ, ์ ๋ชจ๋ธ, protected final ์ฝ๊ธฐ๋ ๋ชจ๋ 0์ด๋ค. ๋๋ฉ์ธ๋ณ ์๋ก ๋ค๋ฅธ ๋ณดํธ๋ ์ต์ข ์์ฒญ ์ต์ 2,400๊ฐ ๋ชฉํ๋ ์ถฉ์กฑํ์ง ์์๋ค.
์ค์ ์๊ฐยทCPUยท๋ฉ๋ชจ๋ฆฌ
Apple M4 Proยท24GiBยทmacOS 26.6.2ยทdarwin/arm64ยทGo 1.27.1์์ native CPU ๊ฒฝ๋ก๋ฅผ ์คํํ๋ค. CGO=0ยทtrimpath ๋น๋์ด๋ฉฐ, controller์ child์ GOMAXPROCS=1 ๋ฐ Go heap 256MiB soft limit์ ์ฌ์ฉํ๋ค. ํ ๋ฒ์ child 1๊ฐยท์์ฒญ 1๊ฐ๋ง ์งํํ๋ค. ์ด๋ OS ์ค๋ ๋ ์ยทCPU affinityยท์ ์ฒด RSS์ hard cap์ ๋ณด์ฅํ๋ ์ค์ ์ ์๋๋ค.
์๋ p95๋ ๊ฐ ํ์ timed 1,024๊ฐ wire RTT์์ ๊ตฌํ ๋ค, ๊ฐ์ ์กฐ๊ฑด์ ์ ํ๋ก์ธ์ค 3ํ ์ฌ์ด ์ต์๊ฐโ์ต๋๊ฐ์ ํ์ํ๋ค. ํฉ์น ํ๋ณธ์ p95๋ ์ ๋ขฐ๊ตฌ๊ฐ์ด ์๋๋ค. Wire RTT๋ ์์ฒญ ์ฐ๊ธฐ ์์๋ถํฐ ์์ ํ ์๋ต ์ค ์์ ๊น์ง์ด๋ฉฐ, ์ดํ controller ๊ฒ์ฆ ์๋ฃ๊น์ง์ ์๊ฐ์ ๋ฐ๋ก ๊ธฐ๋กํ๋ค. RSS์ CPU/request ์ด์ ํ์๋ฅผ ์ํด ๋ฐ์ฌ๋ฆผํ๋ค. ์ ํํ ๊ฐ์ ์๋ณธ JSON์ ์๋ค.
| ๊ธฐ์ค์ | Workload | 3ํ์ wire RTT p95 ๋ฒ์, ยตs | Child peak RSS ๋ฒ์, MiB | Child lifetime CPU/request ๋ฒ์, ยตs |
|---|---|---|---|---|
fixed_order |
same | 21.875โ37.292 | 9.219โ9.281 | 15.307โ32.073 |
fixed_order |
distinct | 39.875โ43.375 | 10.094โ10.391 | 23.844โ24.723 |
bm25 |
same | 24.125โ27.334 | 9.250โ9.469 | 17.424โ17.767 |
bm25 |
distinct | 45.833โ47.375 | 10.109โ10.266 | 27.104โ27.762 |
lexical_ordered |
same | 23.208โ24.708 | 9.281โ9.438 | 17.414โ17.559 |
lexical_ordered |
distinct | 48.709โ50.333 | 10.031โ10.359 | 28.340โ28.801 |
narrow_rule |
same | 23.916โ25.666 | 9.250โ9.453 | 17.111โ17.605 |
narrow_rule |
distinct | 46.834โ49.125 | 10.219โ10.516 | 27.447โ27.847 |
Child์ user+system CPU ํฉ๊ณ๋ 24๊ฐ lifetime์ ํฉ์ณ 0.568013์ด๋ค. ํ๋ณ CPU/request๋ ์ฒซ ์๋ตยทwarmup์ ํฌํจํ 1,045๊ฐ๋ก ๋๋ ๊ฐ์ด๋ฉฐ, timed ๊ตฌ๊ฐ๋ง์ CPU๋ ์์ ์ถ๋ก ์๊ฐ์ ์๋๋ค. ๋ชจ๋ child์ RSS ์๋ ๋จ์๋ Darwin์ bytes์ด๊ณ , ๋ณํ ํ๋ ๊ฐ์ ๊ฐ์ด๋ค. Child ์ ์ฒด ๋ฒ์๋ 9,666,560โ11,026,432 bytes๋ค.
Controller๋ ๋ณ๋๋ก user 0.2652์ด + system 0.240851์ด = 0.506051์ด์ replay CPU๋ฅผ ์ผ๊ณ , lifetime peak RSS๋ 34,717,696 bytes = 33.109375MiB์๋ค. Controller RSS๋ ์ค๋น๋ฅผ ํฌํจํ ์ ์ฒด lifetime peak์ด๋ฉฐ ํ๋ณ RAM์ด๋ replay ์ค ์ฆ๊ฐ๋์ด ์๋๋ค. Child์ controller์ ์๋ก ๋ค๋ฅธ peak๋ฅผ ๋ํด ๋์์ ์ด ์ด peak๋ผ๊ณ ๋ถ๋ฅด์ง ์๋๋ค. ์ ์ฒด replay wall์ 1.482910833์ด์๋ค. ์ด wall/CPU์๋ ํ๋ณ ๊ธฐ๋ stream ํด์ ์ค๋น์ ์ ๋ฆฌ๊ฐ ํฌํจ๋๋ฉฐ, child ์์ ์ ์ ํ๋ณ ํด์ ์ค๋น๋ 204.166โ427.041ยตs๋ก ๋ฐ๋ก ๊ธฐ๋ก๋๋ค.
Timed controller ๋น์ฉ์ ํ๋ณ p95 ๋ฒ์๋ ์์ ๋ถํฐ ๊ฒ์ฆ ์๋ฃ๊น์ง 8.083โ17.458ยตs, ์ค์ ๊ฒ์ฆ ์์ 7.125โ15.750ยตs, ์์ ํ ๊ฒ์ฆ ์์๊น์ง์ ์ ๋ฌ ๊ฐ๊ฒฉ 1.042โ2.125ยตs์๋ค. ์ฐ๊ธฐ ๋๊ธฐ์ p95 ๋ฒ์๋ 1.375โ2.333ยตs๋ค. ์๋ก ๊ฒน์น๋ ์๊ฐ์ด๋ ๋ค๋ฅธ ํญ๋ชฉ์ p95๋ฅผ ๋ํ๊ฑฐ๋ ๋นผ์ ์์ application ์๊ฐ์ ๋ง๋ค์ง ์๋๋ค. ์์ startupยทchild ๋ด๋ถ ์ฒ๋ฆฌยทpipe ๋น์ฉ์ unobserved๋ค.
์ฒซ ํ fixed_order/same/repeat 1์ ์์ ํธ์ถ๋ถํฐ ์ฒซ ์๋ต๊น์ง๋ 577.13ms์๋ค. ๋๋จธ์ง 23ํ์ 2.784792โ3.267459ms๋ค. ์ฒซ ๊ฐ์ ๋ฒ๋ฆฌ์ง ์์์ผ๋ฉฐ ์์ธ์ ๋ฏธํ์ธ์ด๋ค. ์ ํ๋ก์ธ์ค๋ฅผ OS cache๊น์ง ๋น์ด cold๋ผ๊ณ ๋ถ๋ฅด์ง ์์๊ณ cache flush๋ ํ์ง ์์๋ค.
๊ฒฐ๊ณผ๊ฐ ์จ์ ํ ์๋ฃ๋๋๊ฐ
24ํ ๋ชจ๋ planned/attempted/fully-written/received/validated๊ฐ ๋จ๊ณ๋ณ ์์ ์์ ๊ฐ์๋ค. Failedยทincompleteยทnot-attemptedยทstderr bytes๋ ๋ชจ๋ 0์ด๋ค. ๋ชจ๋ ํ์์ ์
๋ ฅยท์ถ๋ ฅ ์ค์ stream SHA๊ฐ ๊ธฐ๋ SHA์ ๊ฐ๊ณ , EOFยทstdout/stderr reader joinยทwatcher joinยทcleanup completeยทreaped๋ฅผ ํ์ธํ๋ค. Wait ํธ์ถ์ ํ๋น ์ ํํ 1ํ์์ผ๋ฉฐ ์ข
๋ฃ ์ฝ๋๋ ๋ชจ๋ 0์ด์๋ค. ์ทจ์ยท์๊ฐ ์ด๊ณผยท์ ๋ฆฌ ์ค๋ฅ๋ ๊ธฐ๋ก๋์ง ์์๋ค.
์์ ํธ์ถ๋ถํฐ ์ ๋ฆฌ๊น์ง ๊ธฐ๋กํ ํ wall์ 29.215084โ617.744ms๋ก child 15์ด ์์ฐ ์์ ์์๊ณ , ์ ์ฒด replay๋ 60์ด ์์ ์๋ฃ๋๋ค. ์ ๋ฆฌ ์๊ฐ์ 3.250โ6.708ยตs๋ก ๊ณต์ 1,000ms ์ ๋ฆฌ ์์ฐ ์์ด์๋ค. ์๋ ์ฌ์๋๋ 0ํ๋ค. ๊ณต๊ฐ ์๋ณธ ๊ฒฐ๊ณผ๋ 81,471 bytes, SHA-256์ d24a50cf71968bb0336f58812ce02a647facff28cb40595e6cebbcd9587c4eaf๋ค. JSON ๊ฒฐ๊ณผ ํฌ๊ธฐ๋ 8MiB ๊ณต๊ฐ ์์ฐ ์์ด๋ฉฐ, ๋ฐ๋ณต ์ ์กํ ์ ์ฒด wire bytes์ ํฉ๊ณ์๋ ๋ค๋ฅธ ํญ๋ชฉ์ด๋ค.
๊ธฐ๋ protocol ์๋ต์ ์ค๋น ๋จ๊ณ์์ ๊ฐ์ ๊ณต๊ฐ ๊ตฌํ์ผ๋ก ๋ง๋ค์๋ค. ๋ฐ๋ผ์ ํด์ ์ผ์น์ ์๋ฃ ์ํ๋ ์ ๋ฌยท๊ฒฐ์ ์ ์ถ๋ ฅ์ ์ ํฉ์ฑ์ ๋ณด์ฌ ์ฃผ๋ฉฐ, ๋ ๋ฆฝ ์๋ฏธ ์ ๋ต์ด๋ ์ฌ๋ฐ๋ฅธ ๊ฒ์ฌ ์์๋ฅผ ์ธ์ฆํ์ง ์๋๋ค.
๋ด์ธ๊ณผ ํด์์ ํ๊ณ
์ค๋น ์์ค๋ 60b0350, ์ ๋ ฅยท๋ฐ์ด๋๋ฆฌยท24ํ ๊ณํ์ ๊ณต์ ์คํ ์ ์ ๊ณ ์ ํ matrix commit์ 891e52d์ด๋ค. Freeze์๋ ์คํ ๋น์ ์ฌ์ ํ ์คํธ ํ์ผ 5๊ฐ๋ฅผ ํฌํจํ ๊ตฌํ pin 31๊ฐ, ๋ ๋ฐ์ด๋๋ฆฌ SHA์ build recipeยทcorpusยทplan SHA๊ฐ ์๋ค. Git blob 31๊ฐ ํ์ธ์ ๋ณ๋ ๋ด์ธ ์์ ์์ ์ํํ๊ณ CLI๋ commit ํ์๋ง ํ์ธํ๋ค. ๊ฒฐ๊ณผ ์์ง ํ ํ๊ท guard๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ, ์ด๋ฅผ ๊ณต์ ์คํ ์ ์ ์กด์ฌํ ๊ฒ์ฌ๋ ๋ด์ธ ์์ฒ์ผ๋ก ์๊ธํ์ง ์๋๋ค. CI ์๋ฃ์ ์๋ ๋ณํฉ์ ์ด์19์ ๋ณ๋ ๊ธฐ๋กํ๋ค.
์
๋ ฅ ํฌ๊ธฐ๋ ๋ workload์์ ๊ฐ์ง ์๋ค. same์ LF ํฌํจ ์ ์ก ์ค์ 385 bytes๋ค. ์ ์ฒด pool์ 385โ1,165 bytes, ํ๊ท 675.6875 bytes์ด๋ฉฐ ์์ฒญ ์ ๊ทํ ๋จ์ด ์๋ 4โ32๊ฐ, ํ๋ณด๋ 4โ32๊ฐ๋ค. ์ฒซ ์์ฒญ์ 8๋จ์ด์ด๊ณ ํ๋ณด๋ 5/7/8๋จ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก same/distinct ์ฐจ์ด๋ฅผ ์
๋ ฅ ์ฌ์ฌ์ฉ์ด๋ cache๋ง์ ์ธ๊ณผ ํจ๊ณผ๋ก ํด์ํ์ง ์๋๋ค. ์๋ฌธ ์์ฒญ์ 36โ236 bytes, ํ๋ณด๋ 28โ252 bytes๋ก, ๊ฐ๋ฅํ ๋ชจ๋ 512-byte ์
๋ ฅยท์ธ์ดยท์ต์
์กฐ๊ฑด์ ์ธก์ ํ ๊ฒ๋ ์๋๋ค. ์ ๊ทํ๊ฐ ๊ธฐํธ๋ฅผ ์ ๊ฑฐํ๋ฏ๋ก feature SHA๋ ๋ฏธ๋ ์๋ฏธยท๊ท์นยท๋ชจ๋ธ cache key์ ์์ ์ฑ ์ฆ๊ฑฐ๊ฐ ์๋๋ค.
56a์ ์ฒซ cold 370.932333ms์ ๋ณ๋ profile์ runtime.kevent flat **83.02%**๋ ์์ธยท๊ท์ ๋ฏธํด๊ฒฐ ์ํ๋ก ๋ณด์กดํ๋ค. 56a๋ 8ํ๋ณด์ io.Discard/๋จ๊ณ benchmark, 56d๋ ์ ํํ 3ํ๋ณด์ ์ค์ ์์ฃผ pipe ์๋ณต์ด๋ฏ๋ก ์ง์ ์๋ ํฅ์๋ฅ ์ ๊ณ์ฐํ ์ ์๋ค. ์ด๋ฒ ์คํ์ cacheยทSIMDยทSoAยทlock ๋ณ๊ฒฝ์ ์ฑ๊ณผ๋ LLM ์ ๊ฐ์ ์
์ฆํ์ง ์๋๋ค.
๋ค์ ์๋ฏธยทํจ์ฉ ๊ฒํ ๋ 56c ๊ณํ์์ ๋ถ๋ฆฌํด ์งํํ๋ค. Open-loop ๋์์ฑยทmatched-byte echo ๋์กฐยทready ์ ํธยทcache์ ๋ฌดํจํ๋ ํ์ ๋ณ๋ ์ค๊ณ ๋์์ด๋ค. ์ต์ข ๊ฒฐ์ ์ ๋ด๋ฆฌ์ง ์๋ ์์ ํํธ์ ํธ์ถ ๋น์ฉ์ ํ์ธํ๋ค๋ ๋ฒ์๋ฅผ ์ ์งํ๋ฉฐ, ์๋ฏธ ์ ํ๋ยท์ ์ฒด LLM ์ฌ์ฉ๋ยท์ ์ฌ์ ๋ชจ๋ธ์ ๊ฐ์ค์น/์คํ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ ๋ณ๋์ ์ฆ๊ฑฐ๋ฅผ ์๊ตฌํ๋ค.