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서버서능개선

1,414

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
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,414
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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대
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×