Perl install module using CPAN QR

CPAN 모듈을 통해 패키지를 설치하는것은 두어가지 옵션이 있다.

shell 타입 내지는 다이렉트 커맨드(싱글라인 인터프리터) 형식이다.


특정 패키지 설치방법.

녹색 = 사용자의 입력커맨드, 즉 당신이 쳐야할 키워드

perl -MCPAN -e 'install Date::Time'

혹은

perl -MCPAN -e shell
cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install Date::Time

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2008/04/05 03:39 2008/04/05 03:39
, , , , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/156

Qmail - Toaster Quick Reference

Centos 등의 설치 단순화를 위한 스크립트

(다운로드부터 셋팅까지)

모든스크립트들은 이 위치에 존재함. 아래의 링크는 64비트 centos 5.0 기준임.

http://www.qmailtoaster.org/old/centos/cnt5064/


Install quick reference

1. 그놈이나 kde를 설치하지 않은 fresh 서버에 설치한다.
2. selinux 를 끈다. (그러나 수정가능)
3. yum 을 update한다 (upgrade명령을 추천). 그리고 리붓
4. cnt5064-deps.sh 실행
5. cnt5064-perl.sh 실행
6. cnt5064-svcs.sh 에 mysql 루트패스워드를 수정하고, firewall.sh 에 ip주소를 수정한다.
7. cnt5064-svcs.sh 실행 & 리부팅
8. cnt5064-install.sh 실행
9. cnt5064-djbdns-localcache-install.sh 실행 혹은 bind를 설정한다.

Fresh Configuration

Directory Reviews

* 기본적인 qmail 의 시스템은 /var/qmail 에 설치된다 (prefix) 이하는 prefix sub로 설명한다.
* control 디렉토리에는 qmail main system 의 설정관련 파일이 존재한다.
* smtp rules 은 /etc/tcprules.d/ 에 존재한다. 설정변경후에는 컴파일이 필요하지만 service script 을 사용함으로써 (init.d의 qmailctl등) 바로 만들수 있다. qmailctl cdb

Fast Configuration

아래 설명된 target configuration 파일은 control 디렉토리 하에 있음

1. defaultdomain - 사용할 도메인만 입력
2. defaulthost - 사용할 도메인 입력 (상동)
3. locals - 로컬서버의 어드레스들을 입력 (mx 포함)
4. me - 자신의 도메인을 입력 (1상동)
5. rcpthosts - 송신을 허용할 호스트들을 입력
6. databytes - 메일이 핸들링할 최고용량 설정
7. virtualdomains - 가상도메인 설정
8. spfbehavior - spf 체크를 사용할지에 대해 설정 (enforcing화 하려면 3)
9. simcontrol - 스팸 체크관련 시스템의 컨트롤 (ip기반임)


Spam Configuration

설치후 perl CPAN 을 이용하여 필요한 모듈을 추가로 설정하여야 spam control 시스템이 정상적으로 동작한다.
sudo -u vpopmail /usr/bin/spamassassin -D --lint
등으로 테스트해서 오류가 올라오는 perl 의 패키지를 찾아서 cpan을 통해 인스톨한다.

Vpopmail Configuration


vpopmail 관련 프로그램 binary path  -> /home/vpopmail/bin

vadddomain 등으로 도메인 추가후 vadduser 등으로 사용자 삽입

QR: 만약 기존서버에서 이관하는 경우에는 /var/qmail/users/assign 의 값을 옮겨야 함.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2008/04/05 03:30 2008/04/05 03:30
, , , , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/155

Tyan Toledo i3010w Bios ISSUE

now, tyan trying to fixing s5197 g2nr bios bug.

do not  update 1.11 bios. there is mtrr related bug. and it is critical.

when you install over 1gb memory and update bios to 1.11 version then crashing issue will appear.

video memory and nic address conflicting. (linux kernel 2.6.18)


타이안(본사)가 현재 tyan toledo i3010w 의 바이오스를 수정하고 있습니다.

1.11 바이오스로 업데이트를 자제하시기 바랍니다.

2.6버전대의 커널을 사용하는 리눅스에서는 1기가를 초과하는 메모리를 설치한 경우 1.11바이오스에서 MTRR와 관련한 치명적인 현상이 발생할 수 있습니다.

비디오 메모리와 네트워크 어댑터의 충돌이 발생합니다.

** 8월 2일 오전 4시 새로운 바이오스가 제작되었습니다. 이 문제는 해결되었습니다.
테스트명은 1.11 A 버전이며, mtrr memory handle 옵션이 추가되었습니다.
임시로라도 필요하신분은 답글로 메일주소 주시면 보내드립니다.

** tyan has been prerelease 1.11 A version bios for test purpose. and it solved those troubles.

조만간 정식버전으로 릴리즈될것입니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/08/02 02:12 2007/08/02 02:12
, , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/134

Subversion Quick Reference

Installation

YUM을 통한 설치
yum install subversion

기본 리파지터리 생성 및 설정

svnadmin create /리파지터리를_만들경로

vi /리파지터리경로/conf/svnserve.conf

아래의 내용을 삽입
(익명 액세스 불가, 액세스 유저 권한 = 쓰기가능, 패스워드디비 = 파일명)
[general]
anon-access = none
auth-access = write
password-db = fucking_plaintext
realm = This is my Repository

vi /리파지터리경로/conf/fucking_plaintext

[users]
root = 내루트비밀번호
사용자 = 비밀번호

서버 시작
혹시 바보가 있을까봐 쓴다만.. xinetd나 standalone 둘중 하나만 선택해서 해야한다 -_-
   
xinet.d 를 통한 서비스 운영시
vi /etc/xinetd.d/svn
(아래 화면은 VI모드에서 입력할 내용, -r의 절대경로는 자기꺼에 맞게 수정할것)
service svn
{
    socket_type = stream
    wait        = no
    user        = root
    server      = /usr/bin/svnserve
    server_args = -r /리파지터리경로 -i
    disable     = no
}

# echo "svn   3690/tcp   #svn" >> /etc/services
# echo "svn   3690/udp   #svn" >> /etc/services

# service xinetd restart
standalone daemon mode

# svnserve -d


USAGE

   add ,    blame (praise, annotate, ann) ,    cat
   checkout (co) ,   cleanup ,   commit (ci) ,   copy (cp),    delete (del, remove, rm)
   diff (di),    export,   import ,    info,    list (ls),    lock,    log ,   merge
   mkdir ,   move (mv, rename, ren) ,   revert ,    status (stat, st)
   update (up)


주로사용하는 명령어는 위와같다.

svn은 각 디렉토리에 .svn 이라는 폴더를 만들어 이 경로가 리파지터리와 싱크됨을 선언하게된다.
따라 그 파일을 지워버리면, working copy 가 아닌게 되므로 더이상 svn명령을 사용할수 없게되므로 주의해야한다.
이와 유사한 역할을 하는것이 export 명령어다.


최초사용시 -

svn import /소스파일폴더 svn://내svn주소/reposit경로 -m "first loading"

등을 통해 소스파일을 모두 reposit 에 업로드를 한다. import를 사용한 경우 현재 업로드한 디렉토리가 svn에 싱크되는 워킹카피가 되지 않는다.

checkout 명령어로 리파지터리의 자료를 받아옴 -
svn checkout svn://내svn주소/reposit경로 서버절대경로

예제)
cd /opt/devel/cryptolib
svn checkout svn://svn.dgtalx.net/aes2048/cryptoapi  .

커밋
(워킹디렉토리 내용을 저장소로 동기화, 애칭으로 체크인이라고 한다)
-m 은 커밋에 따르는 리비전 메시지를 입력하는란
svn ci -m "first committing"


checkout 이 된 뒤부터는 working copy (경로연동)이 되어있으므로 이상태에서 관리명령어는 그냥 디렉토리에서 치는것을 기준으로 한다.

워킹 copy 디렉 (/opt/devel/cryptolib/ 기준) 에서 새로운 파일을 만들어 repositary에 올릴때

#vi new_source.c
 - 내용 대충 만들고 저장  -
#svn add new_source.c
#svn ci -m "source modified"


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/04/19 16:24 2007/04/19 16:24
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/114

Subversion 리뷰

SCM (통칭 버전컨트롤) 을 통해 소스를 관리하는것은 실수를 줄이고, 변화를 쉽게 파악하는 방법중의 하나다.

그래서 전체적인 문서작업과, 그래픽, 웹프로그램들의 소스를 쉽게 컨트롤하게 하기 위해 Subversion 의 설치를 위해 총 6시간이란 막대한 시간을 투자하였다.

SCM에는 CVS와 SVN으로 크게 나뉘고 있다. CVS는 느리지만 오랜기간 안정화가되어 이곳저곳에 많이 쓰인다.
그다음으로 최근에 들어 많이 사용하는것이 이 SVN이다. 여러 익스텐션거 인터그레이션을 통해 바이너리 비교등의 높은 호환성을 보여준다.

간단하게 서론부터 말하면. 매우 피곤해진다. 아직 SVN (Subverion) 은 더 많은 개선이 필요하지만, 개선의 여지는 없어보인다.

일단 내가 필요로 하는 환경을 충족시켜주는지에 대해 검사를 했다.
몇가지 큰 이슈만을 집중적으로 검토하려고 한다.

프로젝트의 참여자 액세스컨트롤을 웹인터페이스등을 통해서도 지원안해
현버전은 프로젝트의 참여자 액세스 컨트롤등을 웹인터페이스에서 추가/삭제가 되지 않는다.
그렇다고 패스워드 연동이 되는가? 애석하게도 아직은 답이 없다.
기본상태의 솔루션을 사용할 경우 ldap 연동조차 지원하지 않는다. (별도의 플러그인이 있는지는 모르겠다)

본개발사인 collabnet 의 엔터프라이즈 에디션을 설치해보려 했다. (웹인터페이스로 프로젝트 acl등의 다양한 기능을 제공한다) 하지만 64비트 시스템에서는 사용할수가 없다고 나왔다.
또한 이는 open subversion 이 아닌 starsource 등의 별도의 프로그램을 설치하는것으로 나타났다.
따라 동떨어진 이야기다. 다운로드 받는데에만 약 40분의 시간이 소요되었고 용량은 350메가정도였다.


대량의 고용량 (5MB이상)급 이미지의 업로드 속도는 최악!
SVN은 CVS보다 빠르다. 조금더 편리하다. 그러나 이미지 처리는 개판이었다!
어도비사의 Version CUE 버전큐를 일반적 업무환경에서는 추천한다.
SVN 보다 이미지처리기준 약 150배가량 처리속도가 뛰어나며, 그래피컬하며 초보자도 매우 간단하게 쓸수 있는 인터페이스를 제공하고 있다. 심플한 Version Control 기능으로 SVN과 유사하게 사용할 수 있다. 모든 파일확장자를 지원하며 (어도비 브릿지상에서), PSD등의 파일은 섬네일까지 보인다. 물론 svn 브라우저들도 보이지만.. 윈도우용을 기준으로 보면 UI가 훨씬 불편하다.
또한 먹통되는 현상이 없으며 웹상에서 사용자를 쉽게 추가/삭제가 가능하며
프로젝트(폴더) 베이스로 권한을 체계적으로 관리할 수 있다.

본래 파일의 소유자,소유그룹,퍼미션이 보존되지 않아...
통의 개발환경을 벗어나 웹사이트가 어느정도 상당한 기능제작이 이루어진 단계에서는 많은 CGI가 연동되기 마련이다.
작게는 Paygate의 결제솔루션, 특정 사이트의 인증을 위한 SSL 레이어 통신프로그램등이 있으며, 여기에 동작하는 키파일 등은 일단 소유자와 퍼미션 설정에 상당히 주의를 하여야 한다.

실제로 현재 내가 필요로 하는 다양한 환경들을 보존하기 위해서는 소유자,그룹, 퍼미션이 현행 그대로 저장되어야 한다. 예를들어보자

중계중인 pg 시스템의 솔루션은 cgi이므로 실행권한 을 필요로 한다. 그러나 svn 을 통해 checkout 하면 644 (rw-r-r-) 상태로 변경된다. 따라서 퍼미션이 꼬여 서비스가 중단되는등의 문제가 생긴다.

자체적으로 개발한 암호화 소프트웨어는 매우 민감한 컨트롤을 받고있는 소프트웨어다.
pg솔루션도 마찬가지지만, 이 파일은 웹서버가 읽기, 쓰기를 해서는 안되며 오직 실행권한만을 획득하여야 한다.
따라서 소유자는 루트, 아파치그룹 이고 퍼미션은 710 으로 설정하여야 한다.
여기에 연결된 계층파이프 프로그램 (권한과 서버의 CPU값, 고유 인식자를 확인하는 소프트웨어) 가 연동되므로 suid 퍼미션을 받아올 수 있어야 한다.

이런 관련파일들이 셀수없이 튀어나오는 상황에서 SVN을 사용할수는 없다.
SVN이 유행처럼 퍼지고 있는 시점에서 버전 컨트롤이라는 목적에서는 극단적으로 적은 호환성밖에 제공하고 있지 않다.

그렇다면 사용할 수 있는 방법이 있는가? postroll 스크립트 (수동으로 구동하여야함) 를 실행하여야 하나 이또한 전체적인 퍼미션을 정상적으로 인식하지 못한다. 일부 블락디바이스로 설정된 디바이스맵등은 무시하는 경향이 있으며 setuid 쪽에 문제가 있다는것.

관련 스크립트는 ASVN 과 SSVN 이 있으며, 테스트결과 SSVN이 개중 좋은 호환성을 보여주었다.

meta-data-versioning 이라는 희안한 패치가 있긴하지만, 이것은 패치형식이 아닌 완성된 소스를 컴파일하는식으로 사용하여야 한다. 그러나 몇가지 언급된 버그들과 개발사이트의 svn관리허술로 1.43 버전으로 업포스팅하는 과정에서 바뀐버전을 찾을수 없는 (아마도 개발자가 귀찮아서 전체커밋을 한게 아닌가싶다) 문제로 모듈하나를 끝마치고 중단을 하게되었다. (한도끝도없어보인다)

그렇다고 현재 개발해서 사용하고 있는 암호화 소프트웨어의 경우 SVN으로 버전관리가 될까?

내가 사용하는 C소스의 경우를 예로 들어보았다.
컴파일후엔 suid 를 필요로하는 바이너리와 일반 바이너리 (보안설정필요)등 바이너리 4개가 생성되며 이러한 바이너리 역시 버전컨트롤로 관리되어 쉽게 롤백시킬수 있는 이점이 있어야한다.
또한 적재되는 모듈들 또안 주 프로그램에서 퍼미션을 확인하게 한다. (해킹당했을 경우에도 root소유권으로 설정되어 내용을 읽거나 가져갈수 없어야한다)

하지만 SVN으로는 이 소스의 형상관리만 가능할 뿐 바이너리는 관리가 되지 않는다. 매번 체크아웃 할때마다 퍼미션 바까줘야하는 중노가다를 하게만들거나, 거기에 따른 스크립트를 붙이게 만든다.


총평
Subversion 은 단순한 프로그램들의 버전컨트롤로써는 쓰기에 충분하다. 그러나 복잡한 웹개발환경에서는 무용지물이라는 사실과, 개발사는 meta-data-versioning 등의 브랜치가 충분히 있으며, 언젠가 개발자의 메일링 답변을 보니 곧 포함할것이다 라는 의견을 밝힌점과 그로부터 2년이 지난 지금..
아직도 포함하지 않고 버전업만 한다는것은 포함할 의사가 없다는것을 나타내는것으로 보인다.

단순한 리눅스의 C소스나 고정화된 배포형식의 버전컨트롤 (현재 freshmeat이나 sf등이 사용하는 형식) 으로 보이기 위함만을 추구하는곳에야 편리하게 깔아 쓸수 있지만,
말그대로 버전컨트롤, 바이너리 관리등을 위한 목적으로 제작된 프로그램은 아닌것이 확실했다.

SVN은 단순한 배포용 소프트웨어다.  webdav 인터페이스를 통해 wc 등으로 누군가 무엇을 했고 누가 참여를 했느냐등을 집계내는 플러그인으로 소스작업과 배포 이외에는 전혀 고려되어있지 않다.

CVS를 통해 편법을 동원해가며 user mapping을 거는것이 오래된 방식이지만 가장 많은 호환성을 나타내는것으로 판단된다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/04/18 04:59 2007/04/18 04:59

64bit cpu on linux 2.6 kernel

this is unsolved problem, currently issued.
아직 해결되지 않은 문제며, 해결되는대로 이에 관련한 퀵리퍼런스가 작성될것으로 보인다.


ERROR MESSAGE IN DIRECT CONSOLE
warning: many lost ticks.
Your time source seems to be instable or some driver is hogging interupts
rip __do_softirq+0x4d/0xd0
Falling back to HPET

Outbreaking Condition (오류발생 조건)-
Environment  / 환경
1. TYAN TEMPEST I5000PX (S5380) - Xeon Woodcrest 2.66Ghz Dualcore / DDR2 1GB FB 5300 ECC
 * In this issue (이 오류는 1번에 해당한다)
2. NVIDIA NFORCE 4 CK804 - AMD Athlon 64 X2 Dual Core 3800+
  displaying this message "Losing some ticks... checking if CPU frequency changed."

Add Note V1:
  I decide that is a different case which two type of system (wrote in environment)
 오류가 두가지로 나뉘는것을 확인하였다.

Operating Condition  / 운영조건
1.  HTTPD
when server load average reached or over about 15.
(means software using extremely large resource)
performance decrease about 40% approxmile
(아파치 서버의 경우 15정도의 로드가 발생하였을때 / 이정도는 엄청나게 많은 리소스 사용량을 의미한다.
이러한 현상이 발생하며, 서버의 전체적인 퍼포먼스가 40%가량 감소한다)

2. MYSQL
when server load average reached or over about 40.
(means software using extremely large resource)
/ in general case the mysql doesn't over loadaverage 5.0, but the other case (error kernel)
OS can't handle resource anymore
if after shown the error messages, server load value going to over 900 and no more handle/operating.
can't shutdown mysql or etc.

(mysql 서버의 로드가 40이상 올라갈 때 발생하며 한번 발생하면 로드가 900이상 즉시 올라가며,
더이상 서버에서 어떠한 운영도 불가능하다.
동일한  데이터 입/출력을 다른서버 (유사한 CPU환경) 에서 발생하였을때 로드가 5.0을 넘기지 않아야하나
이  경우 쉽게 15를 돌파하며 50을 넘겨버린다. 자원의 순환이 되고 있지 않는것을 의미한다.)


Tried kernels / 시도한 커널들
2.6.9-42.0.10.plus.c4smp
2.6.9-42.0.10.ELsmp
2.6.20.6 - custom build

i've been tried to changing values belown. whole setting failed.
아래의 값을변경하며 시도해보았으나 실패하였다.

on BIOS -
ACPI APIC / enable /disable
Memory Remap Features / enable /disable
MAX CPUID VALUE LIMIT / enable /disable
OS handle CPU FREQUENCY / enable /disable
Power Management timer / enable /disable

on Kernel -
clock=pmtmr
clock=pti
noapic
all-generic-ide with bios ahci handling

Expecting caution / 예상오류원리
maybe huge i/o breaking communication cpu to APIC clock counter or specific acpi clock counter.
or kernel driver's detecting failure.

정확하지는 않지만 ACPI 와 관련된 특정한 클럭 계통, APIC 클럭 카운터일수도 있다.
이부분을 과도한 I/O로 인해 CPU가 핸들아웃되는 상황이 발생되는것이 아닌지 추정하고 있다.
은제해결되려나 -_-;;;;;;;;


Solution
Primary Case.
solved out.

update kernel to 2.4.10.c4smp (centos-plus based)

update bios to 1.04 (if u r using tyan s5380)

on bios/
-> turn on max cpuid value set to 3
-> multimedia timer  / on
-> apic/acpi/local acpi / on
-> os handle cpu freq / disable
(if problem doesn't appear turn off Hyper Thread technology)

clear grub loader configuration ( no noirqbalance or acpi_irq_balance or clock ... etc)

on boot/
rc.local -> put this line above

ethtool -s eth0 speed 1000 duplex full autoneg off  wol d
ethtool -A autoneg off rx off tx off
ethtool -K eth0 tso off

i figure out problem occur from e1000 software driver.
if you got the message after turn off e1000 setting, trying to turn off hypher thread technology from bios set.

e1000 드라이버에 의한 문제로 밝혀졌다. 하지만 문제가 중복되어있었다.
(실제로 이것을 끄자 다른 IRQ에서 문제가 중첩되어 bios설정상에서 대다수 변경을 시도하였다)
그러나 문제가 지속되면 하이퍼스레드 기능을 끄면 트레이스한 결과상 문제가 사라져야한다.

In secondary case
2. NVIDIA NFORCE 4 CK804 - AMD Athlon 64 X2 Dual Core 3800+
  displaying this message "Losing some ticks... checking if CPU frequency changed."
Setting ACPI, APIC,  careful to set S-ATA mode to compartible setting
Kernel Can't detecting nf4 ck804 sata controller so if you are using this
probably you are under running "all-generic-ide" option.
but that is real problem. you should remove "all-generic-ide" option from kernel loader.
just adjusting cmos setting.
it occur apic clock losting.
in addition, intel 965RY DG,SS series Can't operating to stable under linux system.
if you shown  direct error message like this "APIC error on CPU0: 00(60)" you should change serveral cmos values. i can't decision which what is extacly working values of yours.
and some people said opinion about that message to "it doesn't matter harmless, apic didn't effecting to System Performance". but actually I founding performance changing.
Definitly apic error message is effictivity system performance.
APIC error on CPU0: 00(60) -> occur Clock losing ->  Losing some ticks... checking if CPU frequency changed." -> performance down!

2항의 경우에는 ACPI 와 APIC와 S-ATA의 모드를 compartible등으로  적절히 설정하여 부팅시켜야 한다.
통싱적으로 커널이 NF4 칩셋을 인식하지 못해 all-generic-ide 를 활성화 하는 경우가 있지만, 이것이 문제의 온상이 되는부분이다.
추가적으로 지난번 설명을 보면 알지만 이와 같은 논리로 인텔 965RY등의 보드는 "리눅스"에서 정상적으로 동작이 불가능하다.
만약  APIC error on CPU0: 00(60) 의 에러가 보인다면 설정이 잘못된것이다. 혹자는 이가 퍼포먼스에 영향이 없다고는 하지만 실제 누적되는 영향을 가져오는것을 발견하였다.
APIC에러 -> 클락 루징 -> 틱계산 문제발생하여 CPU 오류메시지 -> 성능 저하
그 누가 지껄였던가. 레드햇바보들..


Completly Stable System Messages / 완벽히 안정된 시스템 메시지
belown are my G965/NF4 system's dmesg

Case G965.
ACPI: RSDP (v002 ACPIAM                                ) @ 0x00000000000fa950
ACPI: XSDT (v001 MSTEST OEMXSDT  0x01000718 MSFT 0x00000097) @ 0x000000007e790100
ACPI: FADT (v003 MSTEST OEMFACP  0x01000718 MSFT 0x00000097) @ 0x000000007e790290
ACPI: MADT (v001 MSTEST OEMAPIC  0x01000718 MSFT 0x00000097) @ 0x000000007e790390
ACPI: MCFG (v001 MSTEST OEMMCFG  0x01000718 MSFT 0x00000097) @ 0x000000007e790400
ACPI: SLIC (v001 MSTEST TESTONLY 0x01000718 MSFT 0x00000097) @ 0x000000007e790440
ACPI: OEMB (v001 MSTEST AMI_OEM  0x01000718 MSFT 0x00000097) @ 0x000000007e79e040
ACPI: HPET (v001 MSTEST OEMHPET  0x01000718 MSFT 0x00000097) @ 0x000000007e7981d0
ACPI: GSCI (v001 MSTEST GMCHSCI  0x01000718 MSFT 0x00000097) @ 0x000000007e79e0c0
ACPI: DSDT (v001  A0518 A0518000 0x00000000 INTL 0x20060113) @ 0x0000000000000000
No NUMA configuration found
Faking a node at 0000000000000000-000000007e790000
Bootmem setup node 0 0000000000000000-000000007e790000
No mptable found.
On node 0 totalpages: 518032
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 513936 pages, LIFO batch:16
  HighMem zone: 0 pages, LIFO batch:1
DMI 2.4 present.
ACPI: PM-Timer IO Port: 0x808
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 6:15 APIC version 16
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 6:15 APIC version 16
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x82] disabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x83] disabled)
Setting APIC routing to flat
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
ACPI: HPET id: 0x8086a202 base: 0xfed00000
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 80000000 (gap: 7e800000:80600000)
Checking aperture...
Built 1 zonelists
Kernel command line: ro root=LABEL=/ console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 131072 bytes)
time.c: Using 14.318180 MHz HPET timer.
time.c: Detected 2400.008 MHz processor.


Case NF4.
Bootdata ok (command line is ro root=LABEL=/)
Linux version 2.6.9-42.0.10.EL (mockbuild@builder5.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)) #1 Tue Feb 27 09:18:57 EST 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000d7ff0000 (usable)
 BIOS-e820: 00000000d7ff0000 - 00000000d7ff3000 (ACPI NVS)
 BIOS-e820: 00000000d7ff3000 - 00000000d8000000 (ACPI data)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
ACPI: RSDP (v000 Nvidia                                ) @ 0x00000000000f9270
ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x00000000d7ff3040
ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x00000000d7ff30c0
ACPI: MCFG (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x00000000d7ff9680
ACPI: MADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x00000000d7ff95c0
ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000e) @ 0x0000000000000000
No mptable found.
On node 0 totalpages: 884720
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 880624 pages, LIFO batch:16
  HighMem zone: 0 pages, LIFO batch:1
DMI 2.3 present.
Nvidia board detected. Ignoring ACPI timer override.
ACPI: PM-Timer IO Port: 0x4008
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 15:15 APIC version 16
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled)
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
Setting APIC routing to flat
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 14 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 15 high edge)
ACPI: IRQ9 used by override.
ACPI: IRQ14 used by override.
ACPI: IRQ15 used by override.
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at f1000000 (gap: f0000000:ec00000)
Checking aperture...
CPU 0: aperture @ 8822000000 size 32 MB
Aperture from northbridge cpu 0 too small (32 MB)
No AGP bridge found
Built 1 zonelists
Kernel command line: ro root=LABEL=/ console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 131072 bytes)
time.c: Using 3.579545 MHz PM timer.
time.c: Detected 2010.321 MHz processor.
time.c: Using PIT/TSC based timekeeping.
........................ skip some parts..............................
NFORCE-CK804: IDE controller at PCI slot 0000:00:06.0
NFORCE-CK804: chipset revision 242
NFORCE-CK804: not 100% native mode: will probe irqs later
NFORCE-CK804: 0000:00:06.0 (rev f2) UDMA133 controller
NFORCE-CK804: neither IDE port enabled (BIOS)
Probing IDE interface ide0...
Probing IDE interface ide1...
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...'
.... skip some message ...
SCSI subsystem initialized
libata version 1.20 loaded.
sata_nv 0000:00:07.0: version 0.8
ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 20 (level, low) -> IRQ 201
PCI: Setting latency timer of device 0000:00:07.0 to 64
ata1: SATA max UDMA/133 cmd 0x9F0 ctl 0xBF2 bmdma 0xCC00 irq 201
ata2: SATA max UDMA/133 cmd 0x970 ctl 0xB72 bmdma 0xCC08 irq 201
ata1: SATA link up 1.5 Gbps (SStatus 113)
ata1: dev 0 cfg 49:2f00 82:74eb 83:7fea 84:4023 85:74e8 86:3c02 87:4023 88:203f
ata1: dev 0 ATA-6, max UDMA/100, 160836480 sectors: LBA48
nv_sata: Primary device added
nv_sata: Primary device removed
nv_sata: Secondary device added
nv_sata: Secondary device removed
ata1: dev 0 configured for UDMA/100
scsi0 : sata_nv
ata2: SATA link down (SStatus 0)
scsi1 : sata_nv
Using cfq io scheduler
  Vendor: ATA       Model: HDS722580VLSA80   Rev: V32O
  Type:   Direct-Access                      ANSI SCSI revision: 05



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/04/18 04:13 2007/04/18 04:13
, , , , , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/112

Macintosh/MacOS packet overhead crash under linux router (VPN)

매킨토시의 네트워크 어댑터는 무슨 구조로 동작하는지 모르지만 게이트웨이의 2중 MTU 설정에 민감하게 반응했다.

버추얼부트를 통해  윈도우로 부팅을 해도 마찬가지 현상이 발생하였다.

macintosh -> giga switch (3com) -> gigabit switch (jumbo frame/cos 802.11p / vlan setting) -> linux router
-> packet forwarding via vpn -> idc traffic server-> IDC network area

(vpn tunneling )

네트워크의 구조는 위와 같다. 이 설정중에 유독 문제가 발생한것은 매킨토시의 하드웨어였다.
윈도우나, 맥os 나 모두 아래와 같은 오류가 발생했다.

socket closing while file transfering (over 9.8MB)
cut http post transfering (over 5.2MB , socket keep connecting)

이 문제는 linux router -> idc traffic server 로 연결되는 지점에서 발생한다.

idc traffic server의 MTU 와 linux router 의 MTU 는 둘다 1500 이었다.

누적수차에 대한 패킷 오버헤드를 계산해보았다. Ethernet Link Aggresstion 기능을 이용하여 vpn을 구성하였기에 연결된 회선갯수에 대한 mtu 조절이 필요하였다.


따라서 일반적인 경우, Linux Router 의 MTU를 1450 으로 변경할 경우 매킨토시의 패킷오버헤드 중첩으로 인한 커넥션 중단현상이 발생하지 않을것이다.

in general case, to solving packet overhead problem. you should change mtu to 1450 which origin gateway (linux router).
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/03/16 01:08 2007/03/16 01:08
, , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/104

Redhat style dhclient script

Centos/RHEL 급의 dhclient script를 또 간만에 삽질하게되었다.

파워콤은 희안하게 5시간 간격으로 dhcp 를 lease 하고서는 행업을 해버린다.

즉 디바이스 커넥션이 끊기고 링크다운이 일어난 후 다시 릴리즈하는식을 반복한다.

아마 인증을 하지 않아서일수도 있지만.. 자세한 원인은 알기싫다. 하지만 그리 나쁘지 않은 기회로 생각하고

전체적인 안정화작업을 위해 스크립트를 귀찮지만 뜯어보게되었다.


첫째로 iproute2 커멘트 체제로 스크립트가 넘어왔다. 편리하다.. 좀더 직관적이고 오류가 적어졌다.

둘째로 후킹스크립트를 지원한다.. 별거아니지만 그래도 있으면 편리하다.
/etc/dhclient-eth0-up-hooks 형식으로 인터페이스의 업이 됨과 동시에 설정할 수 있는 스크립트 로딩을 지원한다.

이곳에 명령어를 추가하여 추가적인 설정이 가능하다.


셋째로 /etc/sysconfig/network 에 DHCLIENT_USE_GATEWAY=yes 형식의 선언이 가능하다
dhcp를 통해 받은 게이트 설정을 라우팅에 반영할수있게 하는 옵션이다. 이녀석이 없으면 귀찮을뻔했다.

GATEWAYDEV 라는 명령이 함께 쓰인다.
GATEWAYDEV 는 ifcfg-ethx 나 상기 network 에 선언할수있다.

GATEWAYDEV=eth1 등으로, dhcp 를 통해 ip를 받아오는 디바이스가 두군데가 있다면 그중 어느것을 주 게이트로 설정할지를 입력할 수 있다.


또한 dhcp를 통해 받아오는 디바이스를 게이트로 삼고싶지 않을때에는 다른 디바이스를 넣어버리면된다.


GATEWAYDEV 는 별도의 ifcfg 컨피그를 통해 실제 디바이스일 경우 디폴트 라우팅을 이에 맞추게 만드는 기능또한 가지고 있다. (이 옵션은 DHCP에만 국한된 옵션이 아니다)

/etc/dhclient.conf 에 아래와 같은 설정으로 라우팅 게이트웨이를 받지않는 방법을 곁들이는것을 필요로 한다.
request subnet-mask, broadcast-address, host-name;

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/03/13 02:19 2007/03/13 02:19
, , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/101

Reverse Proxing for Highspeed Content Delivery

Delivery Condition :

delivery size : 10~500K (avg 300KB) file
total file size : 1TB
Request per sec -
Minimum : 3000 Requests / sec
Average : 9000 requests / sec
Peak : 36000 Requests / sec
Inactconn : 150,000 / Average
enforce object ttl : 1Day (NO REFRESH/MODIFIED ignore)
daily cache average area size (following ttl time) : most 8.2GB
peak transmit rate : 400MBps
Memory : 16GB

Additional Information
Storage : 3ware sata raid5
capacity : 4TB
Transferating Speed :  READ 190MB/s / ( actually most 30MB/s  left bandwidth for handle cache server, we have a lot of writing, and reading for another service.)


Current Configuration
Using Squid
only first level caching on memory
no secondary level caching

Problem : never cache again when the object has been expired.
1day -> cached object -> 1days over(2days) -> cached object has been expire also purge memory -> 2Days after -> the object never cache again -> user request this -> direct pass throught to origin server

We got a serveral I/O hazard when the expired object is issued in our site by users.

Tried aufs secondary level caching with async i/o , but the result is very poor.
if you have setting like that, you cannot make a traffic over 250Mbps

I'll trying to install squid version 3.
Actually there is no solutions, except zeus web server.
(i saw the report which zeus performance results, it is good for this case,
but still have memory caching problems for seperate process sharing)

Tried Solutions
varnishd - it supporting useful configuration, the vcl have much feather than squid's.
but we got a serveral memory bugs. it isn't perfect yet. do not use to production.
and there is no cache replacement logics such like as LRU, Greedy dual size freqs.
this is very important logic when you operating over memory only system.

lighttpd - too very slow. that is not optimized for cache usage

apache - don't think.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2007/01/21 03:31 2007/01/21 03:31
, , , , , , , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/90

Sysctl Fine Network Tuning


net.ipv4.tcp_rmem  =   16384    122880   204800
net.ipv4.tcp_wmem =  16384     122880   204800
net.ipv4.tcp_mem   =  1048576  1572864 2097152

net.ipv4.tcp_max_tw_buckets = 80000
net.core.wmem_max = 256000
net.core.rmem_max = 256000
net.core.rmem_default = 204800
net.core.wmem_default = 204800
net.core.optmem_max = 20000

net.ipv4.netfilter.ip_conntrack_max = 131072

net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_sack = 0
net.ipv4.tcp_window_scaling = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_rfc1337 = 0
net.core.netdev_max_backlog = 18000
net.ipv4.tcp_syncookies = 1

웹서비스용도로 많은 환경변수 및 네트워크 여건등을 고려하여 오랜기간 튜닝에 걸쳐 최적화된값이다.

300tps 이하/ 만1천 동시접속 소켓 연결수 이하에 최적화 되어있고, 100Mbps Ethernet 전용이다.

(커넥션이 늘어날 경우 ip_conntrack_max 를 증가해줘야한다. iptables등으로 방화벽을 사용하는 경우에말이다)
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by LeCieL

2006/12/12 14:34 2006/12/12 14:34
, , ,
Response
No Trackback , No Comment
RSS :
http://cl.dgtalx.net/rss/response/79


Archives

Calendar

«   2010/09   »
      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 29 30