제 사이트 트래픽이 엄청 많은거였네요 = _= 정보
제 사이트 트래픽이 엄청 많은거였네요 = _=
본문
앞에 서버세팅 조언을 구합니다. 에서
많은분들이 조언을 해주셔서
이번에 nginx + php-fpm 으로 교체를 해봤습니다.
동접자 제한 좀 넉넉하게 풀어주고...
3시간정도 돌려보았는데요.
깜박하고 gzip 설정을 제대로 안해서 압축없이 트래픽이 나갔는데... 대역을 보니 60Mbps = _=...
그동안 10Mbps 안짝에서 놀았던지라... 제 서버가 그렇게까지 방문자가 많아서 대역이 폭발한다! 라는 느낌은 없었는데..
제 서버 접속수는 생각보다 많았던겁니다. OTL
현재 nginx worker_connections 102400; 정도 올려두고...
fastcgi 버퍼도
fastcgi_buffers 4 256k;
fastcgi_buffer_size 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
이정도 늘려주었는데... 간간히 502 에러와 사이트 응답이 10~20초간 없는경우가 있는걸로 봐선...
nginx도 못버텨주는건지... 심히 걱정이네요. ㅠ _ㅠ
Cpu(s): 24.1%us, 11.9%sy, 0.0%ni, 62.8%id, 0.5%wa, 0.0%hi, 0.6%si, 0.0%st
Mem: 4018668k total, 2284132k used, 1734536k free, 141712k buffers
Swap: 4008208k total, 107812k used, 3900396k free, 1192116k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5472 mysql 15 0 839m 288m 3228 S 175.0 7.4 1355:47 mysqld
669 nginx 15 0 87876 45m 940 S 13.6 1.1 0:40.52 nginx
1586 nobody 15 0 151m 10m 3900 S 4.0 0.3 0:01.82 php-cgi
1677 nobody 15 0 151m 10m 3900 S 4.0 0.3 0:01.34 php-cgi
1722 nobody 15 0 150m 10m 4004 S 4.0 0.3 0:00.93 php-cgi
1571 nobody 15 0 151m 10m 3916 S 3.7 0.3 0:01.84 php-cgi
1582 nobody 16 0 150m 9748 3880 S 3.7 0.2 0:01.86 php-cgi
1585 nobody 16 0 150m 9848 3984 R 3.7 0.2 0:01.73 php-cgi
1636 nobody 15 0 144m 7448 3624 S 3.7 0.2 0:01.40 php-cgi
1709 nobody 15 0 151m 10m 3896 S 3.7 0.3 0:00.99 php-cgi
1752 nobody 15 0 150m 10m 3884 S 3.7 0.3 0:00.73 php-cgi
1785 nobody 15 0 144m 7420 3616 S 3.7 0.2 0:00.36 php-cgi
1574 nobody 15 0 143m 7268 3704 S 3.3 0.2 0:01.92 php-cgi
1575 nobody 15 0 151m 10m 3928 S 3.3 0.3 0:01.90 php-cgi
1591 nobody 15 0 150m 10m 4260 S 3.3 0.3 0:01.80 php-cgi
1594 nobody 15 0 144m 8512 3676 S 3.3 0.2 0:01.76 php-cgi
1611 nobody 16 0 150m 10m 3896 S 3.3 0.3 0:01.78 php-cgi
1614 nobody 16 0 151m 10m 3900 S 3.3 0.3 0:01.66 php-cgi
1620 nobody 15 0 149m 9124 3780 S 3.3 0.2 0:01.59 php-cgi
1775 nobody 15 0 143m 7612 4008 S 3.3 0.2 0:00.43 php-cgi
1778 nobody 15 0 150m 10m 3876 S 3.3 0.3 0:00.44 php-cgi
2617 sharedan 15 0 68180 548 436 S 3.3 0.0 22:21.99 sharedanced
1680 nobody 15 0 150m 10m 3872 S 3.0 0.3 0:01.22 php-cgi
1695 nobody 15 0 150m 9968 3892 S 3.0 0.2 0:01.17 php-cgi
1749 nobody 15 0 143m 7576 4008 S 3.0 0.2 0:00.75 php-cgi
1769 nobody 15 0 151m 10m 3896 S 3.0 0.3 0:00.51 php-cgi
1772 nobody 15 0 150m 9752 3876 S 3.0 0.2 0:00.52 php-cgi
1782 nobody 15 0 143m 7180 3616 S 3.0 0.2 0:00.34 php-cgi
1797 nobody 15 0 143m 7204 3620 S 3.0 0.2 0:00.24 php-cgi
1544 nobody 15 0 151m 11m 3996 S 2.7 0.3 0:02.04 php-cgi
1683 nobody 15 0 150m 9.8m 3884 S 2.7 0.3 0:01.17 php-cgi
1617 nobody 15 0 151m 10m 4032 S 2.3 0.3 0:01.63 php-cgi
1837 nobody 16 0 149m 8588 3472 S 1.7 0.2 0:00.05 php-cgi
php-cgi 가 리스트를 다 먹어버리네요.. 꺄울... ㅋ
아 서버 더 늘릴돈은 없는데 심히 걱정입니다.
부디 nginx 가 버텨주기를 바랄 수 밖에 없겠네요. ㅠ
추천
0
0
댓글 16개

다시 확인해보니 서버 메모리도 4GB = _=
서버메모리를 더 늘려서 좀더 버텨볼까봐요...
서버메모리를 더 늘려서 좀더 버텨볼까봐요...

많이 부럽네요 .~~
수익모델 좋은거 하나 만드셔서 서버비 충당하는 방법도 생각해보심이 좋을꺼 같아요
수익모델 좋은거 하나 만드셔서 서버비 충당하는 방법도 생각해보심이 좋을꺼 같아요

수익모델같은거.. 없습니다. ㅠ _ㅠ

php-fpm
max thread 는 48~50 (이상이면 소용없는중 압니다~)
max request는 4천
php.ini
limit memory 살짝 올려 주었고
nginx
keepalive_timeout 는 0으로 주었습니다~
-----------------
지극히 개인적은 설정입니다 ㅠ
따라하셔서 피해보시면 책임지지 않습니다ㅠ
max thread 는 48~50 (이상이면 소용없는중 압니다~)
max request는 4천
php.ini
limit memory 살짝 올려 주었고
nginx
keepalive_timeout 는 0으로 주었습니다~
-----------------
지극히 개인적은 설정입니다 ㅠ
따라하셔서 피해보시면 책임지지 않습니다ㅠ

<value name="max_children">30</value>
Settings group for 'apache-like' pm style
<value name="apache_like">
Sets the number of server processes created on startup.
Used only when 'apache-like' pm_style is selected
<value name="StartServers">30</value>
Sets the desired minimum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MinSpareServers">30</value>
Sets the desired maximum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MaxSpareServers">30</value>
</value>
<value name="max_requests">1000</value>
일단 요렇게 정도만 세팅해보았습니다. = _=;;
Settings group for 'apache-like' pm style
<value name="apache_like">
Sets the number of server processes created on startup.
Used only when 'apache-like' pm_style is selected
<value name="StartServers">30</value>
Sets the desired minimum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MinSpareServers">30</value>
Sets the desired maximum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MaxSpareServers">30</value>
</value>
<value name="max_requests">1000</value>
일단 요렇게 정도만 세팅해보았습니다. = _=;;

max_children 48
StartServers30
MinSpareServers15
MaxSpareServers45
로 한번 해보시겠어요~?
StartServers30
MinSpareServers15
MaxSpareServers45
로 한번 해보시겠어요~?


빠르게 반응하네요
바로바로 뜹니다.
바로바로 뜹니다.

다행이네요. 일단은 좀 버텨봐야겠습니다.

http://httpd.apache.org/docs/2.0/ko/misc/perf-tuning.html
아파치 관련 문서지만 nginx도 해당된다고 생각되네요.
메모리 추가하셔야 될거 같아요
스왑사용하면 느려지죠
아파치 관련 문서지만 nginx도 해당된다고 생각되네요.
메모리 추가하셔야 될거 같아요
스왑사용하면 느려지죠

메모리는 추가적으로 주문을 넣어놨는데...
과연 이 상황에서 보시다싶이 mysqld 부하가 엄청난데. 이를 따로 때어내면 좀 나아질까요? 느리더라도 서버가 죽지만 않으면 되는데 자꾸 죽어놔서 ㅠ _ㅠ
과연 이 상황에서 보시다싶이 mysqld 부하가 엄청난데. 이를 따로 때어내면 좀 나아질까요? 느리더라도 서버가 죽지만 않으면 되는데 자꾸 죽어놔서 ㅠ _ㅠ

저사양 서버 쓸때 쓰던 꼼수인데요
스왑메모리 사용량을 리포팅 해주는 스크립트를 만드셔서 스왑이 올라간다 싶으면 직접 fpm-php, nginx 를 재시작 해주거나
스왑메모리가 일정이상 올라가면 자동으로 서비스 재시작 가능하게 해주시면 서버가 다운되지는 않을것 같습니다.
스왑메모리 사용량을 리포팅 해주는 스크립트를 만드셔서 스왑이 올라간다 싶으면 직접 fpm-php, nginx 를 재시작 해주거나
스왑메모리가 일정이상 올라가면 자동으로 서비스 재시작 가능하게 해주시면 서버가 다운되지는 않을것 같습니다.

그 정도 꼼수까진 부리고 싶지 않아요 흑흑...
대규모 사이트 운영하는 사람들 보면... 부러울따름입니다. OTL
대규모 사이트 운영하는 사람들 보면... 부러울따름입니다. OTL

메모리는 16기가로 늘리시구요.
mysql을 분리하시면, 아마 다른 문제에 발생할것 같네요.
지금 웹서버랑 mysql서버가 동일서버에서 localhost를 호출함으로 port자원을 사용하지 않을겁니다.(unix_socket인가 하는 파이프를 쓰는걸로 mysql.sock 파일이 이파일)
분리하게 되면, tcp 통신을 해야함으로 웹서버는 지금 상황에서 port자원이 두배로 필요하게 됩니다.
mysql 서버도 포트를 써야 하구요.
현상에서는 cpu좋은거 + ssd + 메모리가 최선이고, 돈이 있으면,
webserver 는 3대정도, db는 리플리케이션으로 구성하는게 좋을것 같습니다.
mysql을 분리하시면, 아마 다른 문제에 발생할것 같네요.
지금 웹서버랑 mysql서버가 동일서버에서 localhost를 호출함으로 port자원을 사용하지 않을겁니다.(unix_socket인가 하는 파이프를 쓰는걸로 mysql.sock 파일이 이파일)
분리하게 되면, tcp 통신을 해야함으로 웹서버는 지금 상황에서 port자원이 두배로 필요하게 됩니다.
mysql 서버도 포트를 써야 하구요.
현상에서는 cpu좋은거 + ssd + 메모리가 최선이고, 돈이 있으면,
webserver 는 3대정도, db는 리플리케이션으로 구성하는게 좋을것 같습니다.

디비서버를 한개 더 꼽는다면
지금 서버 바로 밑에 꼽아서 로컬랜으로 돌려볼려구요.
그러면 소켓자원은 낭비가 안되지 않나요??
지금 서버 바로 밑에 꼽아서 로컬랜으로 돌려볼려구요.
그러면 소켓자원은 낭비가 안되지 않나요??

사설망도 랜장비를 통한 tcp/ip 로 접속합니다.