Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
XE 서버 성능 개선
목표

•

1개의 응답에 필요한 리소스 절약

•

사용자 요청에 대한 응답이 조금이라도 빠르게
측정은 어떻게 할 것 인가?
http://www.bubblews.com/news/1170033-f5-for-life
Requests Per Second
RPS 테스트
•

apache ab
•

•

jmeter
•

•

http://httpd.apache.org/docs/2.4/programs/
ab.html

http://jmeter.apache.org/

nGr...
$ ab -c 100 -n 1000 http://yourdomain
결정 요소
•

서버 사양

•

OS 종류

•

웹 서버 종류

•

DB 서버 종류

•

PHP 버전 & extensions

•

CDN

•

등등등
BUT! 정답은 없음.
XE가 원래 느리잖아요…
XE문제..가 아니라
구동방식의 차이 !
XE vs 제로보드
•

예) 게시물 목록 페이지

•

제로보드
•

•

DB에서 1 row씩 받으면서 출력

XE
•

DB에서 모든 rows를 받아놓고 출력
먼저,

무엇이 문제인지 확인
모니터링
•

서버 리소스 사용 상태
•

CPU, Memory, Disk IO, Network…

•

WebServer / Database 처리량

•

웹사이트

•

YSlow

•

등등
웹서버 by goaccess

http://goaccess.prosoftcorp.com/
MySQL
•

$ mysqladmin -u root -p status

•

$ mysqladmin -u root -p processlist

•

phpMyAdmin 이용
Cloud Service

http://newrelic.com
Graphite

http://graphite.wikidot.com/
모르겠어요.
그냥,

•

허용하는 범위 내에서 버전들을 올려보자!

•

이것만 해도 효과는 있다.
PHP 5.4 이상 !

https://blog.asmallorange.com/2013/08/php-roadmap-performance/
그리고 설정
•

CPU 수, Memory 크기, Network 등에 따라

•

Nginx, Apache, PHP, Database 등 설정 변경

•

memcached, apc 등 cache layer 추가
PHP Session Storage
•

PHP Session Storage를 Memcached로 교체

•

Memcached 설치 > 구동
•

•

CPU 사용량이 낮음

php.ini 에서 설정
WebServer
•

Nginx vs Apache

•

Keepalive on/off

•

access logging off

•

Rewrite Rule 고려(Apache)

•

Kernel 튜닝
•

ulim...
PHP Opcode Cache
•

Apc

•

Xcache

•

ZendOptimizer

•

OPcache

http://phpjobinterview.blogspot.kr/2012/09/php-opcode-ca...
mysqlnd
•

PHP 전용으로 제작한 mysql driver.

http://blog.felho.hu/what-is-new-in-php-53-part-3-mysqlnd.html
Database
•

MySQL vs MariaDB

•

MyISAM vs innoDB
•

table locking vs row level locking
MySQL

https://github.com/major/MySQLTuner-perl
XE Setting
•

XE 1.7.4 !

•

mysqli_innodb type

•

object cache 활용

•

불필요한 XE extensions 검토

•

page module인 경우 cache 사용
그래도 안되면,
•

Scale Up
•
•

CPU 업그레이드

•
•

메모리 추가

SSD

Scale Out
•

웹서버와 DB서버 등으로 분리
고려사항
•

웹서버 부하 분산 방법 ?
•

•

DNS RR, L4, HAProxy

첨부파일은… 어디에???
•
•

•

rsync, lrsync 등으로 웹서버간 파일 동기화
별도 파일 서버

로그인 세션 공유 ...
XE 공식사이트 서버
2008

•

Web Server : apache 1대

•

DB Server : MySQL 1대
2010
•

Web Server(vm) : apache 4대

•

DB Server : CUBRID 1대

•

File Server : storage cloud
2012
•

Web Server(vm) : apache 4대

•

DB Server : CUBRID 2대
•

•

master / slave

File Server : storage cloud
2014, 현재
•

Web Server(vm) : Nginx 1~5대, PHP 5.5

•

DB Server : MariaDB 2대

•

File Server(vm) : NFS 2대
Upcoming SlideShare
Loading in …5
×

2014년 02월 XE세미나 XE서버서능개선

2,028 views

Published on

동영상 by 서명덕 - http://itviewpoint.com/

http://www.youtube.com/watch?v=Rdc3-uZhCT4&list=PLZ9uJh6mO6seUbnHC7MtVGctVHGalncyN

http://www.youtube.com/watch?v=O2TAm6-0pNw&list=PLZ9uJh6mO6seUbnHC7MtVGctVHGalncyN

http://www.youtube.com/watch?v=XQ6zsB6tLgQ&list=PLZ9uJh6mO6seUbnHC7MtVGctVHGalncyN

http://www.youtube.com/watch?v=yA-zSPdVP6w&list=PLZ9uJh6mO6seUbnHC7MtVGctVHGalncyN

http://www.youtube.com/watch?v=i2_z5HJIwL4&list=PLZ9uJh6mO6seUbnHC7MtVGctVHGalncyN

Published in: Technology
  • Be the first to comment

2014년 02월 XE세미나 XE서버서능개선

  1. 1. XE 서버 성능 개선
  2. 2. 목표 • 1개의 응답에 필요한 리소스 절약 • 사용자 요청에 대한 응답이 조금이라도 빠르게
  3. 3. 측정은 어떻게 할 것 인가?
  4. 4. http://www.bubblews.com/news/1170033-f5-for-life
  5. 5. Requests Per Second
  6. 6. RPS 테스트 • apache ab • • jmeter • • http://httpd.apache.org/docs/2.4/programs/ ab.html http://jmeter.apache.org/ nGrinder • http://www.nhnopensource.org/ngrinder/
  7. 7. $ ab -c 100 -n 1000 http://yourdomain
  8. 8. 결정 요소 • 서버 사양 • OS 종류 • 웹 서버 종류 • DB 서버 종류 • PHP 버전 & extensions • CDN • 등등등
  9. 9. BUT! 정답은 없음.
  10. 10. XE가 원래 느리잖아요…
  11. 11. XE문제..가 아니라 구동방식의 차이 !
  12. 12. XE vs 제로보드 • 예) 게시물 목록 페이지 • 제로보드 • • DB에서 1 row씩 받으면서 출력 XE • DB에서 모든 rows를 받아놓고 출력
  13. 13. 먼저,
 무엇이 문제인지 확인
  14. 14. 모니터링 • 서버 리소스 사용 상태 • CPU, Memory, Disk IO, Network… • WebServer / Database 처리량 • 웹사이트 • YSlow • 등등
  15. 15. 웹서버 by goaccess http://goaccess.prosoftcorp.com/
  16. 16. MySQL • $ mysqladmin -u root -p status • $ mysqladmin -u root -p processlist • phpMyAdmin 이용
  17. 17. Cloud Service http://newrelic.com
  18. 18. Graphite http://graphite.wikidot.com/
  19. 19. 모르겠어요.
  20. 20. 그냥, • 허용하는 범위 내에서 버전들을 올려보자! • 이것만 해도 효과는 있다.
  21. 21. PHP 5.4 이상 ! https://blog.asmallorange.com/2013/08/php-roadmap-performance/
  22. 22. 그리고 설정 • CPU 수, Memory 크기, Network 등에 따라 • Nginx, Apache, PHP, Database 등 설정 변경 • memcached, apc 등 cache layer 추가
  23. 23. PHP Session Storage • PHP Session Storage를 Memcached로 교체 • Memcached 설치 > 구동 • • CPU 사용량이 낮음 php.ini 에서 설정
  24. 24. WebServer • Nginx vs Apache • Keepalive on/off • access logging off • Rewrite Rule 고려(Apache) • Kernel 튜닝 • ulimit, sysctl 등
  25. 25. PHP Opcode Cache • Apc • Xcache • ZendOptimizer • OPcache http://phpjobinterview.blogspot.kr/2012/09/php-opcode-caches.html
  26. 26. mysqlnd • PHP 전용으로 제작한 mysql driver. http://blog.felho.hu/what-is-new-in-php-53-part-3-mysqlnd.html
  27. 27. Database • MySQL vs MariaDB • MyISAM vs innoDB • table locking vs row level locking
  28. 28. MySQL https://github.com/major/MySQLTuner-perl
  29. 29. XE Setting • XE 1.7.4 ! • mysqli_innodb type • object cache 활용 • 불필요한 XE extensions 검토 • page module인 경우 cache 사용
  30. 30. 그래도 안되면, • Scale Up • • CPU 업그레이드 • • 메모리 추가 SSD Scale Out • 웹서버와 DB서버 등으로 분리
  31. 31. 고려사항 • 웹서버 부하 분산 방법 ? • • DNS RR, L4, HAProxy 첨부파일은… 어디에??? • • • rsync, lrsync 등으로 웹서버간 파일 동기화 별도 파일 서버 로그인 세션 공유 방법 ? • DB, memcached
  32. 32. XE 공식사이트 서버
  33. 33. 2008 • Web Server : apache 1대 • DB Server : MySQL 1대
  34. 34. 2010 • Web Server(vm) : apache 4대 • DB Server : CUBRID 1대 • File Server : storage cloud
  35. 35. 2012 • Web Server(vm) : apache 4대 • DB Server : CUBRID 2대 • • master / slave File Server : storage cloud
  36. 36. 2014, 현재 • Web Server(vm) : Nginx 1~5대, PHP 5.5 • DB Server : MariaDB 2대 • File Server(vm) : NFS 2대

×