검색결과 리스트
AB에 해당되는 글 1건
- 2015.07.19 그누보드5 성능 향상 패치 (캐시 친화적 패치)
세션($_SESSION
쿠키)의 사용은 캐시 서버의 캐시 적중률에 방해를 일으켜서 캐시서버 성능을 저하시키는 원인이 됩니다.
https://github.com/gnuboard/gnuboard5/pull/15
이 패치는 그누보드에서 무조건적으로 session_start()
가 호출되는 부분을 변경하여. session_start()
가 선택적으로 호출되게 하여 캐시서버의 캐시 적중률을 높여줍니다.
이 패치를 적용하고 난 후에 다음과 같은 줄을 커맨트아웃시킨 후에 아파치벤치의 성능을 살펴보겠습니다.
// common.php의 다음 줄을 찾아서 커맨트아웃
// 방문자수의 접속을 남김
#include_once(G5_BBS_PATH.'/visit_insert.inc.php');
위 visit_insert.inc.php
는 중복 접속이 카운팅되는 것을 막기위해 쿠키를 사용하고 있는데, 쿠키를 사용하는 부분때문에 캐시 적중률을 떨어뜨리고 있습니다. 이 부분은 다른 방식으로 고쳐야만 그누보드가 좀 더 캐시서버 친화적이 될 수 있습니다.
$ ab -n 1000 -c 30 "http://g4.xxxxx.xxx"
Requests per second: 1854.10 [#/sec] (mean)
Time per request: 16.180 [ms] (mean)
Time per request: 0.539 [ms] (mean, across all concurrent requests)
Transfer rate: 21510.47 [Kbytes/sec] received
...
~1800RPS 및 21MB/s가 나오고 있습니다.
이 패치를 적용한 후에 중복 접속 카운팅 부분을 커맨트아웃 시키고varnish
캐시서버 + 그누보드5 + nginx
(php4-fpm
세팅) 성능을 아파치벤치마크 성능이 다음과 같이 나옵니다.
$ ab -n 1000 -c 30 "http://g4.xxxxxx.xxxx/"
...
Requests per second: 12976.40 [#/sec] (mean)
Time per request: 2.312 [ms] (mean)
Time per request: 0.077 [ms] (mean, across all concurrent requests)
Transfer rate: 148354.17 [Kbytes/sec] received
...
~12000RPS 및 148MB/s 속도가 나오고 있습니다.
접속회수 1만회 동시접속을 300까지 늘려보면
$ ab -n 10000 -c 300 "http://g4.xxxxxx.xxxx/"
...
Requests per second: 17307.54 [#/sec] (mean)
Time per request: 17.333 [ms] (mean)
Time per request: 0.058 [ms] (mean, across all concurrent requests)
Transfer rate: 197871.10 [Kbytes/sec] received
...
서버 로드상태
$ w
01:30:28 up xx days, 8:54, x users, load average: 0.13, 0.08, 0.11
단순히 아파치벤치 성능상으로 최대 ~8배의 성능 향상이 있음을 볼 수 있습니다.
이 패치는 현재 https://github.com/gnuboard/gnuboard5/pull/15 에 등록시켜 반영을 기다리고 있는 중입니다. (http://sir.co.kr/g5_tip/2964 글도 같이 올렸습니다.)
XE 성능을 100배 향상시키는 속도 패치 (0) | 2015.07.19 |
---|---|
10분 안에 PHP 확장 모듈 만들기 (0) | 2015.05.02 |
XE 게시판용 위키 링크 및 URL 매핑 애드온 (2) | 2013.05.10 |
RECENT COMMENT