저사향 SERVER 튜닝에 대한 좋은의견 있으세요?

Supermania의 이미지

지금도 제 발아래에서 모니터도 키보드도 없이 묵묵하게 일만하고 있는 개인용 서버가 한대 있습니다.

Quote:
펜티엄1-166 / 128M(32M x 4) / 2G Hdd

OS는 FreeBSD 4.9 STABLE을 사용중이고 가동중인 서비스는 nat , apache , mysql , qmail , djbdns 이정도로 주변에서 흔하게 볼수 있는 개인용 서버입니다.
(프비로 넘어오기전에는 LRP중 하나인 Coyotelinux로 약 6개월정도 사용을 했었습니다.)

이렇게 사용을 해온지도 어언... 2년이 넘어가고 있습니다 지금까지 아주 만족스럽게 잘 사용을 하고 있습니다.
(ISP(KT)에서 dhcp로 주었던 IP를 강제로 회수해가는 만행만 :twisted: 저지르지 않는다면 절대 꺼지는일이 없었습니다 :D )

그런데 얼마전부터 이 서버로 개인 위키를 가동하면서부터 한계를 느끼고 있습니다. 사용해본 위키 클론은 Python기반의 MoinMoin 변종, php기반의 MoniWiki 등등이었는데
모두다 응답이 너무 느려서 사용하는데 어려움이 많습니다. 사실 집에 이놈보다는 상위의 노는 머신들이 몇대 더 있기때문에 머신 자체를 업그레이드하면 쉽게 해결되겠지만 제가
기계의 성능을 100% 끌어내지 못하고 있다는 생각도 들고 개인적으로 이놈한테 정도 많이 들고 그래서... 이렇게 의견을 구합니다. 궁금한 부분은 ...

:?: 1. 이 사향에서 다이나믹페이지를 생성하는 서비스를 하는것은 무리일까요?(그럼 그런 서비스의 최소사향은 어느정도일까요?)

:?: 2. RAM을 32M에서 128M로 확장했지만 기대했던것 만큼의 성능향상이 없었습니다 왜그럴까요?

:?: 3. 만약 소프트웨어적인 튜닝으로 성능향상을 꽤하려고 한다면 어떤부분에서 부터 시작을 해야할까요?

:?: 4. 각자 개인이 사용하시는 서버에 작업하신 튜닝작업에 대한 경험을 들려주세요

이 정도 입니다. 아직까지 RPS가 뭔지도, 이런것을 어떻게 체계적으로 측정해서 비교하는지도 모르는 한마디로 문외안이지만 개인적으로 이곳에 예전에 Risapapa님께서 올리셨던
저사향 서버활용 방안등에 대해서 적으셨던 글을 아주 감명깊게 봤었고 그 뒤로 시스템 튜닝에 대해 관심이 많아졌습니다. 펜티엄1을 좀더 학대( :twisted:)할수 있도록
여러분들의 좋은 의견 기대하겠습니다 ~ ^^;

정태영의 이미지

하드가 기가막히게 느릴듯하군요..

-_-;;
그냥 업그레이드 하세요;;;;;;;;;

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

Supermania의 이미지

안그래도 저도 이글 적고 나서 갑자기 하드디스크 스펙이 궁금해서 뒤져봤더니...
http://www.harddrives4less.com/maxdiammax25.html

Quote:
Formatted Capacity: 2.5GB
Interface: EIDE
Data Transfer Rates: 33.3MB/s (ATA-4)
Physical Pins of Data Connector: 40pins
Average Access Times: 10ms
Buffer Size: 256KB
Rotational Speed: 5200rpm

이 모델인데 장난이 아니네요 가지고있는 저용량 하드디스크
http://www.harddrives4less.com/samspin84uat3.html
Quote:
Formatted Capacity: 8.4GB
Interface: 40-pin EIDE
Data Transfer Rates: 66.6MB/s (UDMA)
Average Seek Times: 8.5ms
Buffer Size: 512KB
Rotational Speed: 5400rpm
이놈이랑 용량은 약 3배 seek time, buffer size data trans rate등 스팩은 딱 2배 차이가 니네요 -0-;;;
예상외로 HDD가 병목이었을지도 모르겠네요 @_@;;
근데 Mainboard Bios가 인식을할지 모르겠습니다 :shock:

내가 인내하는 만큼 나는 내꿈에 다가서고 있다.

cdpark의 이미지

Supermania wrote:

그런데 얼마전부터 이 서버로 개인 위키를 가동하면서부터 한계를 느끼고 있습니다. 사용해본 위키 클론은 Python기반의 MoinMoin 변종, php기반의 MoniWiki 등등이었는데
모두다 응답이 너무 느려서 사용하는데 어려움이 많습니다.

MoinMoin 최신버젼을 이용해보시죠? ModPython을 사용하고, cache 기능을 적극적으로 이용한다면 응답속도를 꽤 늘릴 수 있을겁니다.

정 느리면 아파치의 proxy 기능까지 동원해보시거나요. :)

coalash의 이미지

메모리 사용도를 점검해 보시고, free 가 많다면 squid 의 reverse-proxy 로 큰 효과를 보실 수 있을겁니다.

단, moinmoin 이 적당한 http response header 를 만들어 내는지 점검이 필요하겠습니다만.

환골탈태의 이미지

파일시스템을 xfs로 바꾸니 반응속도가 조금 빨라진 기억이 있습니다.

포맷 옵션은
# mkfs.xfs -d agcount=4 -l size=32m /dev/sdb1

마운트 옵션은
# mount -t xfs /dev/sd3 /home -o noatime,nodiratime,osyncisdsync

완벽한 헝그리 정신에 도움이 되시길...

__________________________________________________
모두 다 Hardy로 업그레이드 하고 있습니다.

cjh의 이미지

어디가 느린건지 체크해 보시는 것이 좋겠군요...
메모리를 최대한 아껴 쓰고, 디스크 I/O를 줄이도록 튜닝하시는 것이 좋겠습니다. 커널에서 불필요한 드라이버/옵션은 모두 제거하고, systat같은걸로 어디가 느린지 살펴 보세요.

제 생각에는 혼자 쓰기에는 그럭저럭 쓸만한 것 같네요.

--
익스펙토 페트로눔

Supermania의 이미지

Quote:

파일시스템을 xfs로 바꾸니 반응속도가 조금 빨라진 기억이 있습니다.
....
완벽한 헝그리 정신에 도움이 되시길...

감사합니다 -_-)b

일단 disk를 교체하기로 마음을 먹었습니다. 교체하게 된다면 xfs도 고려해보겠습니다. ^^;

그런데 파일시스템을 바꾸고 지금 쓰는 디스크의 system전체를 옮기려면

어떤식으로 작업해야하나요??

Quote:
어디가 느린건지 체크해 보시는 것이 좋겠군요...
메모리를 최대한 아껴 쓰고, 디스크 I/O를 줄이도록 튜닝하시는 것이 좋겠습니다. 커널에서 불필요한 드라이버/옵션은 모두 제거하고, systat같은걸로 어디가 느린지 살펴 보세요.

네! 그러지 않아도 이 글을쓰고서는 vmstat의 멘페이지를 뒤적이던중에 systat를 알게되서 조금 실행을 시켜봤는데

icmp부터 io,net,tcpmemory 등등 엄청나게 만은부분을 커버하는 모니터링 툴이더군요 :shock:

하지만 측정된 값을 해석하는 능력이 부족해서 man page등을 참고해서 노력하는중입니다(혹시 도움될만한 문서있으면 추천해주세요)

커널크기는 나름대로 최대한 다이어트를 시켰는데 적정한 수준인지 모르겠습니다.

ls -al /  | grep kernel
-r-xr-xr-x   1 root  wheel  2088161 12 21 21:33 kernel
-r-xr-xr-x   1 root  wheel  4122347  4  3  2003 kernel.GENERIC
-r-xr-xr-x   1 root  wheel  4122347  4  3  2003 kernel.old

참 그리고 vmstat에서 궁금한 사항이 하나 있는데 수치값중에서 'b'항목은 disk가 병목이 되는 작업(읽기/쓰기 대기로 지연되는 작업)인것으로 알고있는데요
항상 이 'b'수치가 6으로 고정이 되어있네요 음... 실재값을 보면...

vmstat -w 5
 procs      memory      page                    disks     faults      cpu
 r b w     avm    fre  flt  re  pi  po  fr  sr ad0 md0   in   sy  cs us sy id
 1 6 0   67580  10316    4   0   0   0   4   1   0   0  263   94  14  2  2 97
 0 6 0   68300  10316    1   0   0   0   0   0   0   0  239   31  11  0  1 99
 0 6 0   68300  10316    1   0   0   0   0   0   0   0  242   19   8  1  1 98
 0 6 0   67860  10316    1   0   0   0   0   0   0   0  242   17   7  0  1 99
 0 6 0   65940  10316    1   0   0   0   0   0   0   0  235   72   7  1  2 98 ->모인위키 request 시작 point
 1 7 0  108320   6740  135   1   3   0 133   0  24   0  278  400  42 50 17 33 
 7 13 0  109384   9428   55   0   2   0  88 222  14   0  273  317  69 78 12 11
 0 6 0  103872  12632   14   0   2   0 189   0   4   0  267  170  48 83  4 14
 0 6 0  103152  12632    1   0   0   0   0   0   0   0  242   72   7  0  1 99
 0 6 0  102712  12632    1   0   0   0   0   0   0   0  236   17   7  0  1 99

보시는것 처럼 'b' idle상태에서도 가 계속 6으로 고정되어있습니다 @_@;;;
간단히 이것만 해석해 보기로는 역시나 b쪽 수치가 높은것으로 봐서 디스크 병목이 있고 또...
처리때 CPU idle도 거의 풀로 올라가고 'r'항목도 많이 쌓이는것으로 봐서는 는 프로세스도 거의 한계인것 같습니다
만약 그렇다면 프로세스를 업그레이드를 하거나 python등 언어 자체를 건드려서 하드하게 튜닝하는수밖에 없는거겠죠?? @_@;; 어떻게 보시는지요??

내가 인내하는 만큼 나는 내꿈에 다가서고 있다.

서지훈의 이미지

vmstat 의 결과를 보니깐...
CPU와 DISK에 아주 심각하게 overhead가 걸리는것 같네요.
일단은 web service가 되고 있는 하드와 일반 서비스 부분을 완전히 다른 device로 분리를 하세요.
그리고, 파일시스템의 교체도 한번 생각을 해보시길.
웹서비스 같은 경우엔 작은 파일들의 access가 빈번히 일어 나는 경우이니깐.
reiserfs도 한 번 고려 해보시길 바립니다.

그리고 CPU부분은 최대한 필요없는 서비스는 내리고...
kernel도 최대한 조여서 사용을 하시고...
웹서버나 기타 서비스 compile시 최대한의 optimizing도 해주시면 그럭저럭
전보단 나아 지지 않을까 생각이 드네요.
그리고 웹서버 logging도 최소한으로 하고...

그리고 메모리 부분은 현재로선 크게 문제가 되질 않는것 같군요...
그래도 top으로 swap을 얼마나 사용을 하는지 확인을 하시고...
swap은 최소한으로(사용안하면 더 좋은것이구...-_-ㅋ)사용하게 듀닝도 하셔야 할듯 합니다.

그리고 man tuning 하면은 도움이 될만한 사항들이 있으니 확인해보시길...

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

cjh의 이미지

FreeBSD라는데 xfs나 reiserfs는 도움이 안될것 같은데요... ^^

마운트 옵션에 softupdate 걸려있나 보세요(mount -v). 그리고 커널은 좀 더 다이어트가 가능할 것 같은데...

--
익스펙토 페트로눔

punking의 이미지

혹시 전기세 대비 서능 무엇이냐면 같은 전기용량을 쓰면서
구지 저성능의 머신을 돌리느냐 입니다

잘아시겠지만.

아무레도 전기세가 아깝다는 생각이 드네요 약간만 업그레이드 해서 쓰는 편이
좋을듯

당연히 100% 활용 좋처

maddie의 이미지

mod_perl과 fastcgi를 쓰면 저사양에서 상당한 퍼포를 만드는 서버를 구축할 수 있다고 들었습니다. 물론 이를 이용한 웹어플리케이션이 조금 적다는 느낌인데, 아마도 뒤져보면 많이 나올거라 생각합니다.(펄로 되어 있는 것들은 간단한 수정으로 돌아간다고 "들었"습니다. 제가 해본적은 없구용.) 위키도 아마 perl로 되어 있는 공개 애플이 있다고 생각되구요.

프비라면요 네트워크 카드에서 DEVICE_POLLING을 이용해 보시는 것도 좋습니다. sysctl을 이용한 튜닝도 있구요.

http://silverwraith.com/papers/freebsd-tuning.php

을 참고하세요. 저도 이 문서로 도움을 많이 받았네요.

커널 튜닝에 있어서는 계속 옵션을 주시면서 추이를 살펴보는 수밖에 없습니당. 설정파일에서 옵션을 빼도 가끔씩 사용하는 것은 모듈로 올리실 수 있으니 그냥 네트웍 모듈과 필수적인 옵션만 넣고 컴파일 하신 후 사용하시면 더욱 좋은 결과가 예상됩니다.(정말 마우스나 키보드가 없는 서버라면 키보드나 마우스 옵션도 샤샥~ 지워버리는 것이지요. 경험상, 키보드는 지우지 마세요. 문제 생기면 당황스럽습니다.ㅋㅋ)

아, 그리고 최준호님이 지적하신 soft-update 안되어 있으면 꼭 하세요.
치명적으로 차이가 납니다.

힘없는자의 슬픔