암드 서버 렉 줄이는 방법, taskset 간단 사용법

Tip 2011. 5. 18. 00:49
이 포스트에 정확히 제목을 붙이자면, 암드 서버에 자원 제한하는 방법, 암드 서버 구동시 다른 게임 서버에 발생하는 렉을 줄이는 방법이 되겠습니다. 추가로 이 포스트의 내용에는 taskset에 대한 간단한 사용법이 포함되어 있습니다.

듀얼코어로 ArmA(암드)의 dedicated server를 구동할 경우 엄청난 CPU 자원을 ArmA 서버가 차지합니다.
이 경우 다른 게임 서버에 렉이 발생할 가능성이 높아집니다.

본인은 남는 iMac을 서버로 사용하고 있는데, T7700 듀얼코어 CPU에서 ArmA 데디 서버를 돌리니까, 다른 게임 서버에 잦은 렉이 발생했습니다.

이럴 경우 해결 방법은 두가지 입니다.

1. ArmA 서버 구동시 -cpuCount=1 파라미터를 추가합니다. 만약 메모리도 제한하고 싶다면 -maxMem=512 파라미터를 추가합니다. 값은 512~2048까지 허용되고 단위는 MB입니다.

[예] # ./server -cpuCount=1 -maxMem=512 -config=server.cfg
이 경우 ArmA 서버가 사용할 수 있는 CPU의 코어는 하나, 메모리는 강제로 512MB로 제한합니다.

이렇게 서버를 돌리더라도, 종종 ArmA 서버가 사용하는 코어를 0번 코어에서 1번 코어로, 1번에서 0번 코어로 바꿉니다. 이 때 다른 게임 서버에 렉이 발생하는데, 이것을 해결하기 위해서는 2번 방법을 사용하면 됩니다.

2. 이 방법은 리눅스를 OS로 사용하고 있는 서버에서만 사용할 수 있으며 가장 확실한 방법입니다.

터미널을 열고
# taskset -pc processor-number pid
를 입력합니다.
여기서 processor-number는 사용할 CPU 코어이고, pid는 CPU를 제한할 프로세스의 PID입니다.

[예] # taskset -pc 0 28664
이 경우 PID가 28664인 프로세스는 0번 코어만 사용하게 됩니다.

taskset이 설치되어 있지 않다면 자신이 사용하는 리눅스 배포판에 맞게 schedutils를 설치하면 됩니다.
[데비안 리눅스] # apt-get install schedutils
[레드햇 리눅스] # yum install schedutils

만약 0과 1번 코어를 모두 사용하고 싶다면
# taskset -pc 0,1 pid

taskset의 더 자세한 사용법은 터미널에
# taskset --help
를 입력하거나, 구글링을 하면 정보를 얻을 수 있습니다.

:

도메인 변경 안내

Twittering 2011. 5. 5. 02:00
len-ch.com 을 구입 했습니다.

오늘부터 제 서버는 len-ch.com으로 접속하실 수 있습니다.
이 블로그는 blog.len-ch.com으로 접속하실 수 있습니다.

procod.kr은 더 이상 사용할 수 없습니다.

:

한글 지원하도록 eggdrop 설치법

Tip 2011. 5. 3. 19:12
준비물


0. 시스템 로케일 변경

/etc/sysconfig/i18n 의 내용을 아래와 같이 변경합니다.
# LANG="ko_KR.eucKR"
# SUPPORTED="en_US.UTF-8:en_US:ko_KR.eucKR:ko_KR:ko"
그리고 재부팅


1. Tcl 설치

다운로드한 Tcl의 압축을 풀고 설치합니다.
# tar xvzf tcl8.5.9-src.tar.gz

# cd tcl8.5.9

# cd unix

# ./configure --prefix=/path/to/install/tcl --exec-prefix=/path/to/install/tcl --disable-shared

# make

# make install
/path/to/install/tcl 은 자신이 Tcl을 설치하고 싶은 경로로 지정하면 됩니다.


2. eggdrop 패치

다운로드한 eggdrop의 압축을 풀고 패치를 합니다.
# tar xvzf eggdrop1.6.19.tar.gz

# cp eggdrop1.6.19-patch-sp0009.tar.bz2 eggdrop1.6.19

# cd eggdrop1.6.19

# tar xvjf eggdrop1.6.19-patch-sp0009.tar.bz2

# patch -p1 < eggdrop1.6.19-sp0009.diff


3. eggdrop 설치

설치전에 1번에서 설치한 Tcl을 이용하도록 환경변수를 지정합니다.
# export TCLLIB=/path/to/install/tcl/lib

# export TCLINC=/path/to/install/tcl/include
/path/to/install/tcl 은 단계 1번에서 지정한 경로 입니다.

eggdrop을 설치합니다.
# ./configure --prefix=/path/to/install/eggdrop --with-tcllib=/path/to/install/tcl/lib/libtcl8.5.a --with-tclinc=/path/to/install/tcl/include/tcl.h

# make config

# make

# make install
/path/to/install/eggdrop 은 자신이 eggdrop을 설치하고 싶은 경로이고, /path/to/install/tcl 은 단계 1번에서 지정한 경로 입니다.



CentOS 5.6 (i386)에서 제가 빌드한 파일(Tcl 포함) 올립니다. 같은 OS 쓰시는 분은 받아서 쓰실 수 있을지도 :P


시스템 로케일만 ko_KR.eucKR로 되어있으면 패치를 하지 않아도 어느정도 한글은 지원하더라구요 :P 가장 최신 eggdrop을 쓰고 싶으신 분은 로케일만 설정하고 단계 2번 건너 뛰고 설치해보셔도 될 것 같습니다.
: