top -b -d 1 -n 120 > top_output.txt
명령어를 사용해 2분간 CPU와 메모리 사용량 모니터링.폴링 방식에서는 클라이언트가 주기적으로 서버에 요청을 보내 데이터의 변경 여부를 확인합니다. 이번 테스트에서는 다음과 같은 설정을 사용했습니다:
웹소켓 방식에서는 클라이언트와 서버가 지속적인 연결을 유지하여 실시간으로 데이터를 주고받습니다. 이번 테스트에서는 다음과 같은 설정을 사용했습니다:
#!/bin/bash
# top 명령어 출력을 파일로 저장
top -b -d 1 -n 120 > top_output.txt
# CPU 사용률 계산
cpu_usage=$(grep "Cpu(s)" top_output.txt | awk '{usage+=$2} {if($2 > max) max=$2} END {if (NR > 0) print usage/NR, max; else print 0, 0}')
cpu_avg=$(echo $cpu_usage | cut -d' ' -f1)
cpu_max=$(echo $cpu_usage | cut -d' ' -f2)
echo "CPU 사용률 (평균): $cpu_avg%"
echo "CPU 사용률 (최대): $cpu_max%"
# 메모리 사용률 계산
mem_usage=$(grep "MiB Mem" top_output.txt | awk '{used+=$6} {if($6 > max) max=$6} END {if (NR > 0) print used/NR, max; else print 0, 0}')
mem_avg=$(echo $mem_usage | cut -d' ' -f1)
mem_max=$(echo $mem_usage | cut -d' ' -f2)
echo "메모리 사용률 (평균): $mem_avg mB"
echo "메모리 사용률 (최대): $mem_max mB"
항목 | 시작 전 | 평균 | 최대 |
---|---|---|---|
CPU 사용률(%) | 0.3 | 4.2 | 19.0 |
항목 | 시작 전 | 종료 |
---|---|---|
사용중 메모리(MB) | 801.2 | 803.4 |
폴링 방식에서는 클라이언트가 1초 간격으로 서버에 요청을 보내는 방식으로 데이터를 수신합니다. 평균 CPU 사용률은 4.2%로 비교적 낮게 나타났으나, 최대 사용률은 19.0%까지 치솟는 모습을 보였습니다. 이는 다수의 클라이언트가 동시에 요청을 보낼 때 서버의 부하가 크게 증가할 수 있음을 시사합니다.
메모리 사용량은 테스트 시작 전 801.2MB에서 종료 시 803.4MB로 약간 증가하였으나, 큰 변화는 없었습니다. 이는 폴링 방식이 주로 네트워크 및 CPU에 부하를 주며, 메모리 사용량에는 큰 영향을 미치지 않음을 나타냅니다.
항목 | 시작 전 | 평균 | 최대 |
---|---|---|---|
CPU 사용률(%) | 0.3 | 0.48 | 2.4 |
항목 | 시작 전 | 종료 |
---|---|---|
사용중 메모리(MB) | 812.8 | 813.6 |
웹소켓 방식에서는 클라이언트와 서버가 지속적인 연결을 유지하며 실시간으로 데이터를 주고받습니다. 평균 CPU 사용률은 0.48%로 폴링에 비해 매우 낮았으며, 최대 사용률도 2.4%로 폴링에 비해 훨씬 낮았습니다. 이는 웹소켓이 서버에 더 적은 CPU 부하를 주며, 특히 실시간 데이터를 처리할 때 효율적임을 나타냅니다.
메모리 사용량은 테스트 시작 전 812.8MB에서 종료 시 813.6MB로 소폭 증가했습니다. 이는 웹소켓의 연결 유지에 필요한 메모리 소모가 거의 없음을 보여줍니다.