|
순서
- 소개
- 범위
- JBoss AS 소개
- 썬 파이어 T2000 서버 소개
- 배치 작업
- JBoss AS 설치 설명
- JBoss AS 설정 설명
- 퍼포먼스
- OS 튜닝 (/etc/system)
- TCP 튜닝
- 썬 파이어 T2000 서버에서 인터럽트 융합(Coalescence) 튜닝
- 네트워크 설정
- JBoss AS 를 위한 튜닝 고려사항
- 진보된 배치
- 확장 측면에서
- 모니터링 측면에서
- 네트워크 아키텍쳐
소개
범위
이 글은 JBoss 어플리케이션 서버 (JBoss AS) 를 썬 파이어 T2000 서버에 배치시키는 법에 대한 시작점을 제공합니다. JBoss AS 와 썬 파이어 T2000 서버에 대한 일반적인 문서들은 이미 존재하므로 이러한 문서들에 대한 링크들만 제공될 것입니다. 이 글은 썬 파이어 T2000 서버에서 JBoss AS 에 특수한 튜닝 권고안을 제공합니다.
JBoss AS 소개
JBoss AS 는 자바 2 플랫폼, 엔터프라이즈 에디션 (JavaEE) 에 인증된 플랫폼으로 엔터프라이즈 자바 어플리케이션, 웹 어플리케이션, 포털들을 개발하고 배치 하는데 이용 됩니다. JBoss AS 는 J2EE 1.4 의 기능을 완벽히 지원하고 클러스터링, 캐슁, 퍼시스턴스 같은 확장된 기능들도 제공합니다.
썬 파이어 T2000 서버 소개
sun.com 의 썬 파이어 T2000 서버에 대한 설명을 발췌했습니다:
- 퍼포먼스, 월등한 에너지 효율 그리고 사용공간 밀도측면에서 세계 기록을 깨뜨림
- 상을 수상한 16 혹은 32 동시 쓰레드를 지원하는 UltraSPARC T1 프로세서 (UltraSPARC T1 아키텍쳐 는 SPARC V9 호환임)
- 솔라리스 10과 리눅스 운영체제를 지원함 (Solaris Application Binary Interface 를 이용해 작성된 어플리케이션은 어떠한 수정도 없이 UltraSPARC T1 기반 시스템에서 실행됨)
썬 파이어 T2000 서버에 대한 자세한 정보, 특히 벤치 마크와 SwaP (Space, Watts 그리고 Performance) 수치는 sun.com 을 참고 하시기 바랍니다.
배치 작업
JBoss AS 설치 설명
JBoss AS 가 제공하는 강점중의 하나는 설치가 쉽다는 것입니다. JBoss AS 를 설치하기 위해 다음과 같은 작업을 수행합니다:
1. 최신 버전을 http://labs.jboss.com/portal/jbossas/download 에서 다운로드 합니다.
JBoss AS 는 다양한 버전의 tar 파일에 의한 비호환성을 피하기 위해 .zip 파일의 형태로 배포 됩니다.
2. 원하는 장소에 압축을 해제 합니다. 솔라리스에서 권장되는 설치 디렉토리는 /opt 혹은 /home/jboss 입니다.
root@host# unzip jboss-4.0.4.GA.zip
이게 끝입니다. 이제 어려분은 jboss-4.0.4.GA 라는 디렉토리를 볼 수 있을 것입니다. JBoss AS 가 실행될 준비가 끝났습니다.
JBoss AS 설정 설명
JBoss AS 는 설정파일을 $JBOSS_HOME/server 에 저장합니다. 배포판의 압축을 해제한 후 여러분은 3개의 서브디렉토리를 확인할 수 있어야 합니다. 각각의 디렉토리는 서 로다른 JBoss AS 설정 입니다. 각각의 기본 설정에 대한 간단한 설명은 다음과 같습니다.
all-- 클러스터링을 포함한 모든 JBoss AS 의 기능을 가지고 있는 설정.default-- 이 설정은 대부분의 개발자들 과 단독 인스턴스 개발 환경에 적합할 것임.minimal-- 이 설정은 초경량 설정으로 오직 JBoss 마이크로커널 과 몇가지 핵심 서비스들을 포함하고 있음. 필요한 기능만을 추가시키려면 이 설정을 사용 할 것.
어떠한 설정을 사용할지 결정한 다음 작업을 할 수 있도록 특정 디렉토리로 복사해야 할 것입니다.
# cp -r default myconfig
이제 여러분은 $JBOSS_HOME/bin/run.sh -c myconfig 커맨드를 이용해서 JBoss AS 를 여러분의 설정으로 시작시킬 수 있습니다.
JBoss AS 의 또다른 강점은 확장 가능한 여러개의 설정을 제공한다는 것입니다. 왜냐하면 JBoss AS 의 모든 기능들은 플러그인-아웃 이 가능한 모듈로써 여러분은 필요에 따라 기능을 추가하고 제거할 수 있습니다. 좀 더 진보한 설정은 http://labs.jboss.com/portal/jbossas/docs 문서를 참고하시기 바랍니다.
퍼포먼스
OS 튜닝 (/etc/system)
썬 파이어 T2000 서버에서의 퍼포먼스 향상을 위해 다음의 파라미터들을 /etc/system 에 설정하도록 합니다:
set pcie:pcie_aer_ce_mask=0x1 set segmap_percent=60 set smallfile=1572864 set maxpgio=128 set rlim_fd_max=260000 set rlim_fd_cur=260000 set shmsys:shminfo_shmax=0xffffffff set tune_t_fsflushr = 1 set autoup = 60 set sq_max_size = 10000 set ip:ip_squeue_bind = 0
주의: 이러한 튜닝 설정들은 여러 어플리케이션에 의해 공유되고 있는 시스템에서는 최적이 아닐 수도 있습니다.
TCP 튜닝
클라이언트 시스템에서의 TCP 를 튜닝 하기 위해 다음과 같은 커맨드를 실행합니다:
ndd -set /dev/tcp tcp_smallest_anon_port 2048 ndd -set /dev/tcp tcp_max_buf 8388608 ndd -set /dev/tcp tcp_recv_hiwat 131072
썬 파이어 T2000 서버에서 인터럽트 융합(Coalescence) 튜닝
다음의 커맨드를 쉘에서 실행해서 서버가 오직 가상 CPU 29, 30 그리고 31 만이 인터럽트를 사용하도록 강제 합니다. (주의: 커맨드를 한줄에 입력할 것)
psradm -i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
이후에 오직 가상 CPU 29, 30, 31 만이 인터럽트를 받아 들입니다.
네트워크 설정
다음의 스크립트를 사용하여 썬 파이어 T2000 서버의 네트워크 포트를 튜닝합니다:
#!/bin/bash
INSTS="0 1 2 3"
NIC=ipge
for port in $INSTS ; do
ndd -set /dev/$NIC instance $port
ndd -set /dev/$NIC rx_intr_pkts 600
ndd -set /dev/$NIC rx_intr_time 600
done
JBoss AS 를 위한 튜닝 고려사항
J2EE 어플리케이션은 매우 다향하므로 하나의 어플리케이션을 위한 튜닝이 다른 것에서는 잘 맞지 않을 수도 있습니다. 그러나 어쨌든 어떠한 상황에서도 이득을 가져다 줄 수 있는 몇가지 기본 변경사항들이 있습니다.
Java Virtual Machine (JVM) 옵션들 :
$JBOSS_HOME/bin/run.conf 파일을 편집해서 JBoss AS 가 실행될떄의 JVM 셋팅을 설정하도록 합니다. 아래에는 솔라리스10에서 heap 메모리의 사용 가능 공간을 늘리고 가비지 콜렉터의 처리량(throughput) 을 높일 수 있는 설정을 설명합니다.
JAVA_OPTS="-server -Xms2650m -Xmx2650m -Xss128k -verbosegc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:LargePageSizeInBytes=256m"
Tomcat 옵션들 :
$JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/server.xml 를 편집해서 쓰레드 풀 사이즈와 다른 톰켓 커넥터들의 옵션을 설정 합니다. 여러분은 반드시 $JBOSS_HOME/server/default/deploy/jbossweb-tomcat55.sar/jboss-service.xml 에 활성화 되어 있는 몇몇 톰캣의 개발 옵션들을 비활성화 시켜주어야 합니다.
JBoss 옵션들 :
썬 파이어 T2000 서버 시스템에서는 JBoss AS 를 다음과 같은 명령을 통해서 FX 클래스로 실행할 것을 권장 합니다. priocntl 를 실행하기 위해서는 root 권한이 필요 합니다.
/usr/bin/priocntl -e -c FX ./run.sh <jboss options>
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossASTuningSliming 를 참고해서 더 많은 튜닝 옵션들을 검색해 보시기 바랍니다.
진보된 배치
JBoss AS는 솔라리스의 논-글로벌 존에서 테스트되고 인증되어 왔습니다. 왜냐하면 논-글로벌 존은 일반적인 솔라리스 시스템과 거의 유사하게 동작하기 때문이며 결과적으로 솔라리스 존의 장점을 취하기 위해 어떠한 설정도 변경될 필요가 없습니다. 간단히 JBoss AS 설치 파일을 존에 복사 하면 됩니다. 그 다음에 존을 평소와 마찬가지로 존 안에서 실행하면 됩니다.
확장 측면에서
서버의 로드를 증가시킬 수록 몇몇 리소스 제한을 두고 싶어 질 것입니다. JBoss AS 는 여러분의 어플리케이션 needs 에 맞도록 설정될 수 있는 많은 리소스 풀을 가지고 있습니다. 톰캣 쓰레드 풀은 이전에 논의 됐었고 이외에도 많은 수의 내부 풀을 가지고 있습니다. Message Driven Bean(MDB) 을 예로 들 수 있습니다. 이러한 사항들은 설정 파일 $JBOSS_HOME/server/default/conf/standardjboss.xml 에서 확인할 수 있습니다.
만약 하나의 서버의 CPU 사용률이 포화 됐다면 클러스터링을 통해서 계속적으로 확장할 수 있습니다. 간단히 all 설정을 사용하고 각 서버의 멀티캐스트가 활성화된 특정 인터페이스를 바인드 시키면 됩니다. JBoss AS 는 자동적으로 네트워크 상의 다른 인스턴스들을 찾을 것입니다! 클러스터링에 대한 고려사항들 특히 로드-밸런싱 과 세션 replication 등이 존재 합니다. JBoss 의 High Availability and Clustering Topics 을 웹페이지 http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossHA 에서 검색해 보시기 바랍니다.
모니터링 측면에서
JBoss AS 는 모니터링을 위한 몇가지 옵션을 제공합니다.
- Java Management Extensions (JMX) -- JBoss AS 는 JMX 마이크로-커널 기반으로 빌드 되었습니다. JMX 는 내부 리소스의 값을 질의 하거나 모니터링 하는데 최고의 방법을 제공합니다. 왜냐하면 JMX 는 표준이고 어떠한 JMX 툴도 이용할 수 있기 때문입니다. 모니터링을 아주 쉽게 할 수 있도록 디자인된 JBoss Operations Network 의 사용을 고려해 보시기 바랍니다.
또한 JBoss 에 포함된 아주 작은 툴로
twiddle이 존재하고 이 툴로 아주 간단히 JBoss AS 를 조회할 수 있습니다. 이 프로그램은$JBOSS_HOME/bin/twiddle.sh스크립트를 이용해서 실행할 수 있습니다. - SNMP -- 또다른 대안은 SNMP 로 이미 여러 조직에서 사용되고 있습니다. SNMP 어댑터를 사용해서 여러분은 현존하는 JMX 이벤트들을 notification 형태로 받을 수 있습니다. 이 모듈에 대한 설정은 JBoss SNMP Adapter web page 를 참고하시기 바랍니다.
네트워크 아키텍쳐
일반적으로 JBoss AS 는 어떠한 형태의 툭수 네트워크 설정도 필요로 하지 않습니다. 기본적으로 JBoss AS 는 모든 로컬 인터페이스에 바인드 할 수 있습니다. 만약 특정 인터페이스에 바인드 하고자 한다면run.sh 에 -b 옵션을 사용해야 합니다. 이 옵션은 오직 하나의 매개변수를 받습니다: 바인드 할 인터페이스의 IP 어드레스 혹은 DNS 명입니다. 추가적으로 클러스터링은 JBoss AS 가 바인딩될 인터페이스에서 multicast 또한 활성화 되어 있어야 합니다. Multicast 는 기본적으로 솔라리스에서 올바르게 설정되어 있습니다.
연락처
Viet Pham 는 viet.pham@sun.com, Robert Lor 는 robert.lor@sun.com 이메일로 연락이 가능합니다.
JBoss Phillip Thurmond 는 phillip.thurmond@jboss.com 입니다.
참고자료
- Information about the Sun Fire T2000 Server on sun.com
- JBoss Application Server Guide http://labs.jboss.com/portal/jbossas/docs
| Viet Pham (썬 마이크로시스템즈), Phillip Thurmond (JBoss) |



전체

댓글을 달아 주세요
안녕하세요, 배치라는 번역이 좀 어감이 이상하게 들립니다.
배치 (batch)로 혼동의 우려가 있어 deployment는 적용이라는 말이 더 어울릴 것 같다는 개인적인 생각입니다. 감사합니다.
그죠 배치보다는 배포하기가 더 잘 어울려 보입니다.
하지만 JBoss Application Server를 T2000에 설치하고 튜닝하는 내용은 정말 유익했습니다.
설치 하기는 어떨까요? ㅋㅋ
자바는 알면 알수록 재미가 있어지네요. 무궁무진한 자바의 세계로 빠져들어 갑니다. 좋은 자료 잘 활용하겠습니다.
좋은 정보 감사해요~
댓글을 쓰시려면 로그인해주세요.