기타

암달의 법칙을 증명해보자

philo0407 2023. 7. 9. 01:19
서버 개발을 하다 보면
암달의 법칙에 대해 들을 때가 있다

 

서버 성능과 관련하여 암달의 법칙이란 것이 있다

이 법칙은 일부의 성능 개선이 전체 개선이 어느 정도 되는 지를 정량적으로 알 수 있는 공식을 제공한다

 

예를 들어,

특정 API의 성능 개선을 하는데, 

WAS의 비즈니스 로직을 30%개선 하더라도

WAS가 전체 성능의 10%밖에 차지 안 한다면 

전체 시스템의 개선 정도는 2.36% 정도만 되는 것이다

 

 

직관적인 해석

예를들어 일(Work)  Wa, Wb가 있다고 가정해 보자

 

 

일 전체 (Wa +Wb)를 수행하는 데 60분이 걸린다고 하자

그리고 Wa를 수행하는데 40분, Wb를 수행하는데 20분이라고 가정하자

(Wa는 전체의 2/3 이다)

 

Wa에 대해 성능 개선을 해서 40분에서 20분으로 줄였다고 한다면, (2배 개선)

전체 작업시간은 60분에서 40분으로 줄은 것이다

 

즉, 전체 일의 효율은 1.5배가 된 것이다.

 

암달의 법칙을 적용할 경우 똑같은 값이 나오는 지를 확인해보자

 

P: 개선한 일이 차지하는 비율 (0 ≤ P ≤ 1)

S: 개선한 비율 (일반적으로 S>1 라 가정)

 

암달의 법칙은 아래와 같다

 

개선한 일이 차지하는 비율 P는 2/3 이다 (60분 중에서 40분)

개선한 비율 S은 2이다 (효율이 2배)

 

자, 위 공식에 대입해 보자

 

 

검산 결과 1.5배가 나오는 것을 확인할 수 있다

 

 

공식 유도

 

가정은 저렇게 한다

위 법칙을 가지고 몇 가지를 다시 정리해보자

 

 

그럼 우리가 구하고자 하는 답은 위와 같다

잠깐, 중간에 나온 공식도 나름 이쁘고 간결하지 않은가?

저게 올바르게 유도한 것인지, 검증해보자

ta=40, ta'=20, tb=20 이다

 

올바른 길로 향하고 있다는 것을 잠시 확인해보았다

이제 끝까지 가보도록 하자!

 

자, 이렇게 증명이 되었다 !!

 

 

전제

단 위 공식에서 아래를 가정한다

 

이때 전체의 일률과 a의 일률이 같다는 전제를 설정하는데... (조금 오류가 있을 수 있다...)

 

나중에 기회가 있으면 한 번 살펴보도록하겠다 !
 

 

삼성 노트 증명