Skip to content

mugglim/worker-threads-and-libuv-worker-pool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Node.js의 worker_threadsλŠ” libuv μ›Œμ»€ 풀을 μ‚¬μš©ν•˜λŠ”κ°€?

1. κ°œμš”

λ³Έ μ‹€ν—˜μ€ Node.js의 worker_threadsκ°€ libuv의 μ›Œμ»€ ν’€(Worker Pool)을 ν™œμš©ν•˜λŠ”μ§€ λΆ„μ„ν•˜λŠ” 데 λͺ©μ μ΄ μžˆμŠ΅λ‹ˆλ‹€.

2. μ‹€ν—˜ 방법

2.1 ν™˜κ²½

10개의 μ½”μ–΄λ₯Ό κ°€μ§„ Mac M1 Pro ν™˜κ²½μ—μ„œ Node.js 22.14.0 λ²„μ „μœΌλ‘œ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

2.2 방식

μ›Œμ»€ μŠ€λ ˆλ“œ μˆ˜μ™€ libuv의 μ›Œμ»€ ν’€μ˜ 크기λ₯Ό μ•„λž˜μ™€ 같이 λ³€κ²½ν•˜λ©΄μ„œ loop μ—°μ‚°, crypto μ—°μ‚°, 파일 μ‹œμŠ€ν…œ I/O μž‘μ—…μ˜ 처리 속도λ₯Ό λΉ„κ΅ν•©λ‹ˆλ‹€.

μ›Œμ»€ μŠ€λ ˆλ“œ 수 libuv ν’€ 크기
μ›Œμ»€ μŠ€λ ˆλ“œ 수 λ³€κ²½ 1 ~ 7 (λ³€μˆ˜) 1 (κ³ μ •)
libuv μ›Œμ»€ ν’€ 크기 λ³€κ²½ 1 (κ³ μ •) 1 ~ 7 (λ³€μˆ˜)

각 μ‹€ν—˜ μΌ€μ΄μŠ€λ³„ 전체 μž‘μ—… μ™„λ£ŒκΉŒμ§€μ˜ 처리 속도λ₯Ό κΈ°λ‘ν•˜μ˜€μœΌλ©°, 5νšŒμ”© μ§„ν–‰ ν›„ 쀑앙값을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

μ‹€ν—˜ κ΄€λ ¨ νŒŒμΌμ€ λ‹€μŒ κ²½λ‘œμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

2.3 μ œμ•½μ‚¬ν•­

운영체제 μŠ€μΌ€μ€„λ§, λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ› 점유 λ“±μœΌλ‘œ 인해 결과에 μ˜€μ°¨κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°œλ³„ 수치의 κ°’ λ³΄λ‹€λŠ” 상관관계에 μ§‘μ€‘ν•˜μ—¬ 결과에 λŒ€ν•œ 해석이 ν•„μš”ν•©λ‹ˆλ‹€.

3. μ‹€ν—˜ κ²°κ³Ό

3.1 μ‹€ν—˜ 1: loop μ—°μ‚° μž‘μ—…

loop 연산은 μ›Œμ»€ μŠ€λ ˆλ“œ μˆ˜μ— λΉ„λ‘€ν•˜μ—¬ μ†Œμš” μ‹œκ°„μ΄ λ‹¨μΆ•λ©λ‹ˆλ‹€.

3.2 μ‹€ν—˜ 2: crypto μ—°μ‚° μž‘μ—…

crypto 연산은 libuv μ›Œμ»€ ν’€ 크기에 λΉ„λ‘€ν•˜μ—¬ μ†Œμš” μ‹œκ°„μ΄ λ‹¨μΆ•λ©λ‹ˆλ‹€.

3.3 μ‹€ν—˜ 3: 파일 I/O μž‘μ—…

파일 I/O μž‘μ—…μ€ libuv μ›Œμ»€ ν’€ 크기에 λΉ„λ‘€ν•˜μ—¬ μ†Œμš” μ‹œκ°„μ΄ λ‹¨μΆ•λ©λ‹ˆλ‹€.

4. κ²°λ‘ 

loop 연산은 μ›Œμ»€ μŠ€λ ˆλ“œ μˆ˜μ—λ§Œ 영ν–₯을 λ°›μœΌλ©°, crypto μ—°μ‚° 및 파일 I/OλŠ” μ›Œμ»€ μŠ€λ ˆλ“œ μˆ˜μ™€ λ¬΄κ΄€ν•˜κ²Œ libuv μ›Œμ»€ ν’€ ν¬κΈ°μ—λ§Œ 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€.

λ³Έ μ‹€ν—˜μ„ 톡해 worker_threadsκ°€ μƒμ„±ν•˜λŠ” μŠ€λ ˆλ“œλŠ” libuv의 μ›Œμ»€ ν’€κ³Ό 별도 μŠ€λ ˆλ“œμž„μ„ μΆ”λ‘ ν•  수 있으며, crypto 및 파일 I/O μž‘μ—…μ€ libuv의 μ›Œμ»€ 풀을 κ³΅μœ ν•˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

About

Does Node.js worker_threads Use the libuv Worker Pool?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors