πŸ‘·μ μ • λ™μ‹œμ„±(μ›Œμ»€) 수 계산기

μ½”μ–΄Β·λŒ€κΈ° 기반 μ›Œμ»€ 수 μ‚°μΆœ

개
%
ms
ms
건/초
ms
μ½”μ–΄ μˆ˜μ›Œμ»€ 수(μ†Œμˆ˜ 1자리)올림

곡식은 Brian Goetz 의 Java Concurrency in Practice 에 λ‚˜μ˜€λŠ” N = μ½”μ–΄ 수 Γ— λͺ©ν‘œ 이용λ₯  Γ— (1 + λŒ€κΈ°/계산) μž…λ‹ˆλ‹€. λŒ€κΈ° μ‹œκ°„μ—λŠ” I/O 뿐 μ•„λ‹ˆλΌ 락 λŒ€κΈ°λ„ ν¬ν•¨λ©λ‹ˆλ‹€. 곡인된 ꢌμž₯ μ›Œμ»€ μˆ˜λŠ” μ—†μœΌλ―€λ‘œ μž…λ ₯값은 운영 ν™˜κ²½μ—μ„œ μΈ‘μ •ν•œ 값을 μ“°μ„Έμš”. DB 컀λ„₯μ…˜ ν’€ ν¬κΈ°λ‚˜ 큐 μ†Œμ§„ μ‹œκ°„μ€ 각각 λ‹€λ₯Έ 도ꡬ가 λ§‘μŠ΅λ‹ˆλ‹€.

κ΄€λ ¨λœ 도ꡬ

적정 λ™μ‹œμ„± 계산기 μ‚¬μš©λ²•

μ½”μ–΄ μˆ˜μ™€ λͺ©ν‘œ CPU 이용λ₯ , μž‘μ—… 1건의 λŒ€κΈ° μ‹œκ°„κ³Ό 계산 μ‹œκ°„μ„ λ„£μœΌλ©΄ μ›Œμ»€ μˆ˜κ°€ λ‚˜μ˜΅λ‹ˆλ‹€. μ•„λž˜ ν‘œλŠ” 같은 μ‘°κ±΄μ—μ„œ μ½”μ–΄ 수만 바꿨을 λ•Œμ˜ 값을 ν•¨κ»˜ 보여 μ€λ‹ˆλ‹€. μ²˜λ¦¬λŸ‰κ³Ό 응닡 μ‹œκ°„μ„ λ„£μœΌλ©΄ 리틀 λ²•μΉ™μœΌλ‘œ λ³Έ ν•„μš” λ™μ‹œμ„±κ³Ό λΉ„κ΅ν•©λ‹ˆλ‹€.

계산 방식과 κ·Όκ±°

N = μ½”μ–΄ 수 Γ— λͺ©ν‘œ 이용λ₯  Γ— (1 + λŒ€κΈ°/계산) 이며 Brian Goetz 의 Java Concurrency in Practice 에 λ‚˜μ˜€λŠ” μ‹μž…λ‹ˆλ‹€. μ½”μ–΄ 2개·이용λ₯  100%Β·λŒ€κΈ° 50 ms·계산 5 ms λ©΄ 22개, μ½”μ–΄ 4개면 44κ°œκ°€ λ©λ‹ˆλ‹€. λŒ€κΈ°κ°€ 0이면 값이 μ½”μ–΄ μˆ˜μ™€ κ°™μ•„μ§‘λ‹ˆλ‹€. 리틀 법칙 μͺ½μ€ μ²˜λ¦¬λŸ‰ Γ— 응닡 μ‹œκ°„μž…λ‹ˆλ‹€.

ν•œκ³„μ™€ μ£Όμ˜μ‚¬ν•­

곡인된 ꢌμž₯ μ›Œμ»€ μˆ˜λŠ” μ—†μœΌλ©° λŒ€κΈ° μ‹œκ°„μ—λŠ” I/O 뿐 μ•„λ‹ˆλΌ 락 λŒ€κΈ°λ„ λ“€μ–΄κ°‘λ‹ˆλ‹€. λ©”λͺ¨λ¦¬λ‚˜ λ’€μͺ½ μ‹œμŠ€ν…œμ˜ ν•œλ„κ°€ λ¨Όμ € 걸릴 수 μžˆμ–΄ λ°˜λ“œμ‹œ μ‹€μ œ λΆ€ν•˜λ‘œ μΈ‘μ •ν•΄ μ‘°μ •ν•˜μ„Έμš”. μž‘μ—…λ§ˆλ‹€ λŒ€κΈ°Β·κ³„μ‚° μ‹œκ°„μ΄ λ‹€λ₯΄λ©΄ ν‰κ· κ°’μœΌλ‘œ 넣은 만큼 μ˜€μ°¨κ°€ μƒκΉλ‹ˆλ‹€. DB 컀λ„₯μ…˜ ν’€ μ „μš© 계산기가 μ•„λ‹ˆκ³ , 큐 μ†Œμ§„ μ‹œκ°„λ„ 닀루지 μ•ŠμŠ΅λ‹ˆλ‹€.

자주 λ¬»λŠ” 질문

μ›Œμ»€ 수λ₯Ό μ½”μ–΄ μˆ˜λ³΄λ‹€ 많이 둬도 될까?

λŒ€κΈ° μ‹œκ°„μ΄ κΈΈλ©΄ κ·Έλž˜μ•Ό ν•©λ‹ˆλ‹€. μ½”μ–΄ 2κ°œμ— λŒ€κΈ° 50 ms, 계산 5 ms λ©΄ 2 Γ— (1 + 10) = 22κ°œκ°€ λ‚˜μ˜΅λ‹ˆλ‹€. λŒ€κΈ°κ°€ 0이면 μ½”μ–΄ μˆ˜μ™€ κ°™μ•„μ§‘λ‹ˆλ‹€.

λŒ€κΈ° μ‹œκ°„μ— 뭘 λ„£μ–΄μ•Ό ν• κΉŒ?

I/O 뿐 μ•„λ‹ˆλΌ λ½μ΄λ‚˜ 쑰건 λ³€μˆ˜λ₯Ό κΈ°λ‹€λ¦° μ‹œκ°„λ„ λͺ¨λ‘ λŒ€κΈ°μž…λ‹ˆλ‹€. CPU λ₯Ό μ‹€μ œλ‘œ μ“΄ μ‹œκ°„λ§Œ 계산 μ‹œκ°„μœΌλ‘œ λ„£μœΌμ„Έμš”.

이 값을 κ·ΈλŒ€λ‘œ 써도 될까?

좜발점으둜만 μ“°μ„Έμš”. λͺ¨λ“  κ²½μš°μ— λ§žλŠ” 이상적인 μˆ˜λŠ” μ—†κ³ , λ©”λͺ¨λ¦¬μ™€ λ’€μͺ½ μ‹œμŠ€ν…œμ˜ ν•œλ„κ°€ λ¨Όμ € κ±Έλ¦¬λŠ” κ²½μš°λ„ λ§Žμ•„ μ‹€μ œ λΆ€ν•˜λ‘œ 재 λ³΄λŠ” 편이 μ•ˆμ „ν•©λ‹ˆλ‹€.