'Resin'에 해당되는 글 2건

  1. 2008.03.22 resin php 1
  2. 2008.03.22 resin 설치
카테고리 없음2008. 3. 22. 03:48

이번에는, 필요할지도 모르니 php 관련한 테스트도 해보았다. mod_php 보다 정확히 두배빠르다.

ab -t 10 -n 1000 -c 15  http://.../test.php

동일한 php파일을 두군데에 두고는 하나는 mod_php로 돌리고, 하나는 resin으로 돌렸다.

평균 244초 대 73초가 나왔다. resin쪽이 php를 처리하는 능력이 3배정도 빠르다. php 를 그대로 포팅할 수 있는지는 돌려봐야알겠다. caucho 말로는 잘 될거라고 하지만...
 

Posted by jintopark
카테고리 없음2008. 3. 22. 03:42

호스팅을 하나 더 받기로 했다. 까페24에서는 이것저것 잘 쓰고 있지만 장고(django)를 테스트해본다던가, ruby 설정을 바꿔보고 싶다던가, 하는 것은 불가능하다. 결국 가상서버 호스팅이 최적의 선택인 것 같은데, 이곳 http://www.just4fun.co.kr/drupal/ 이 괜찮아보였다. 테스트신청하고 일주일동안 두들겨본 결과, 일단 1년에 10만원짜리 가상서버호스팅을 쓰기로 했다.

속도는 아주 만족스러운데, 가끔씩 응답이 느려지는 경우가 있다. 하지만 운영자가 꽤 부지런하고 친절하다. 그거면 충분했다. 안정성은 아직 모르겠다. 까페24는 안정성만큼은 보장할 수 있었는데, 아직 just4fun은 열흘밖에 못써봤다.

서버를 쓸 수 있게 되자마자, mod_python으로 django환경을 만들어보았다. ruby도 테스트해봤다. 잘된다. 하지만 장고는 장난감. ruby는 한동안은 안쓸꺼고.. 밥벌이는 jsp, groovy로 하는 경우가 많으니까. tomcat과 resin을 설치해봤다.

언제나 그렇듯이, tomcat 과 resin을 비교해봤는데, 역시 resin이 빨랐다.

#apt-get install apache2-dev
#mkdir /opt/resin
#export RESIN_HOME=/opt/resin
#export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
#wget http://www.caucho.com/download/resin-3.1.5.tar.gz
#unzip -x resin-3.1.5.tar.gz
#cd resin-3.1.5
#sh ./configure --with-apxs2=/usr/bin/apxs2 --prefix=/opt/resin

이제 make하기 전에.. modules/c/src/apache2/Makefile 을 아래를 참고해서 고친다. (이건 찾기 쉬웠다.)

APACHE_INC=-I /usr/include/apache2 -I /usr/include/apr-1.0
resin_home=/opt/resin/
apache_conf=/etc/apache2/httpd.conf
apache_dir=apache_libexec=/usr/lib/apache2/modules

mod_caucho.c 맨앞에는..

#define _LARGEFILE64_SOURCE    1

라고 한다. (이건 구글신도 말을 안해줘서 소스를 뒤졌다. 뒤져보니 어렵지 않게 해결할 수 있었다.) 이제 다시 진행하면 된다.

#make
#make install
#cd modules/c/src/apache2/
#make
#make install
#cd /opt/resin/bin
#./httpd.sh start
#web browser go to http:// .... :8080/ and confirm resin loaded

#mkdir ~/mysql_j
#cd ~/mysql_j
#wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.6.zip/from/http://mysql.byungsoo.net/
#unzip -x mysql-connector-java-5.1.6.zip
#cd mysql-connector-java-5.1.6
#cp mysql-connector-java-5.1.6-bin.jar /opt/resin/lib

라고 하고, conf/resin.conf 에서

<driver type="org.gjt.mm.mysql.Driver">

<driver type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">

로 바꾼다.

/etc/profile 에

export RESIN_HOME=/opt/resin
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

를 추가한다.


아파치쪽은 대강 손질해주면된다. make install 하고 나면 httpd.conf에 뭔가를 써넣는다. 보면 대강 안다. a2enmod caucho 해줘도 되고, htpd.conf를 그냥 둬도 된다.

이제 http://wiki.caucho.com/Apache 를 보고 따라하면 아파치랑 레진이 같이 돈다.
하지만, 아파치를 거치게 하면 2~3배정도 느려진다. 그래서 실전에서는 안쓸 수 도 있지만 그래도 확인해봐야 할 것 같아서 설치해봤다. (실전에서 쓸지도 모른다. 아래의 ps에 관련 사항을 적었다)

참고로... resin php 랑 resin jsp 랑은 속도차이가 거의 없다. (데이터베이스 관련 함수같은 것을 빡쎄게 불러주면 속도차이가 날지도 모르겠다. 다만 기본적은 php구현은 꽤 빠르다.


P.S. 혹 GC관련 튜닝이 필요할지도. /opt/resin/httpd.sh 에서  마지막줄을
#exec $JAVA_EXE -jar ${RESIN_HOME}/lib/resin.jar $*
exec $JAVA_EXE -server -Xnoclassgc -XX:+UseConcMarkSweepGC -jar ${RESIN_HOME}/lib/resin.jar $*

로 하는 것이 어떨까. GC 옵션든은 좀더 뒤져보자.
http://wiki.caucho.com/Garbage_collection 도 보자.

ab -t 10 -n 1000 -c 1  http://.../test.jsp

를 했다. 이 테스트에서 가끔씩 (2000번중에 한번 정도) 실패하는 것은...
GC 때문이 아니었다. 무엇인지 잘 모르겠다.

이런 문제는 아파치에서는 잘 생기지 않는 문제지만, resin을 프론트엔드로 내세우면 자주 발생한다. 아마도, 이래서 아파치를 앞쪽에 세우는 거겠지. 우짜둥둥 오늘은 여기까지.

Posted by jintopark

 

 
«이전  1  다음»