rsyslog
1. 개요
nginx의 access log를 기준으로 1) 파일로 기록하는 경우와, 2) 파일로 기록하고 rsyslog를 이용하여 centralized server로 전송하는 경우의 시스템 자원의 사용량, 응답시간, 초당 요청 처리수를 검사한다.
2. 검사 환경
centralized server : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz 1Core, 2GB
client server : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz 2Core, 8GB
* aws의 small, large 인스턴스로 진행하였다.
nginx version : 1.11.1
ab : 2.3, 벤치마크 툴은 ab(Apache HTTP server Benchmarking tool)를 사용한다.
1000개의 쓰레드로 100000번 요청한다. (초당 약 10000 Req)
ex) ab -kc 1000 -n 10000 clientserver
시스템 모니터링 툴 : netdata
protocol : UDP
성능 검사는 총 3대의 서버로 진행한다.
- 벤치마크 툴을 이용해 client server의 nginx에 요청한다.
- client server 로 nginx access_log 를 syslog로 기록하고 다시 중앙 집결 서버에 전송한다.
- centralized syslog server 로 로그가 전송도는 중앙 집결 서버이다.
3. 검사 항목
- 시스템 자원
- 응답시간
- 손실로그
- 초당 요청 처리수
4. 설정
- # client server config
- # vi /usr/local/nginx-1.11.1/conf/nginx.conf
- access_log syslog:server=unix:/dev/log,facility=local7,tag=nginx,severity=info main;
- # client server config
- # vi /usr/local/nginx-1.11.1/conf/nginx.conf
- *.info;mail.none;authpriv.none;cron.none @clientserver
- # centralized server config
- # vi /etc/rsyslog.conf
- $ModLoad imudp
- $UDPServerRun 514
5. 검사
1) 파일로만 기록한 경우
req/sec : 7,875
response time : 126.970 m/s
cpu : 29.57%
2) 파일로 기록하고 rsyslog를 이용하여 centralized server로 전송
req/sec : 7,475
response time : 133.794 m/s
cpu : 34.76%
6. 결과
netdata의 CPU 사용량은 1% ~ 2%,
rsyslog 사용시 평균 약 5%의 오버헤드가 발생하였으며 많게는 15%의 오버헤드가 발생하였다.