https://injae-kim.github.io/dev/2020/07/09/how-to-check-single-server-load-average.html
서버 앞단의 부하 처리
단일 서버의 부하
CPU 부하
프로그램 자체의 연산량이 많은 경우
알고리즘의 시간-공간복잡도 개선.. 효율성 ㅜ
I/O 부하
서버에서 실행되고 있는 프로그램의 입출력이 많거나 저장장치로의 접근량이 많음
어떤 프로세스가 메모리를 극단적으로 소모하고 있는지 확인이 필요
메모리를 증설하거나 데이터를 분산하거나, 필요한 경우 캐시서버를 도입할 수 있음.
캐시서버?
값을 미리 복사해서 저장해둠. 서버니까 그런 일을 하는 서버를 말하는 거겠지?
캐시용도로는 Redis를 많이 사용한다. 인-메모리 방식이라 빠르다는 것이 장점.
https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C
그렇다면 이러한 부하를 측정하는 방법에는 무엇이 있나?
Load Average를 확인할 수 있는 명령어: top
시스템 바운드를 확인할 수 있는 명령어: sar
sar
명령어를 활용하면 %iowait의 값이 높은지, %user혹은 %system의 값이 높은지를 확인하여 CPU부하인지 I/O부하인지 확인할 수 있음.프로세스 어카운팅: 각각의 프로세스가 생성된 이후로 CPU를 어느정도 이용했는지를 프로세스별로 기록하는 것
https://severalnines.com/database-blog/redis-vs-dynamodb-comparison