XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선

4,684 views

Published on

발표 일시 : 2014년 2월 22일
발표자 : 김예솔 ( github @ngleader )

운영 서버의 성능 개선에 대한 방법 제시

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,684
On SlideShare
0
From Embeds
0
Number of Embeds
1,334
Actions
Shares
0
Downloads
29
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

XE 오픈 세미나(2014-02-22) - 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 • http://httpd.apache.org/docs/2.4/programs/ ab.html • jmeter • 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 http://blog.felho.hu/what-is-new-in-php-53-part-3-mysqlnd.html • PHP 전용으로 제작한 mysql driver.
  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대

×