카테고리 Archives: linux

vim 7.0 이상에서 파일 자동완성기능 끄자 -_-a

호불호가 갈리겠지만 난 별로라서 = =a

파일을 인식 해서 자동으로 주석을 넣어주는 기능이 vim 7.0 부터 추가가 되었다.

( 정확히는 그전부터 있던 기능 이지만 기본적으로 Off 였다. )

 

/etc/vimrc 파일에 설정된 옵션을 꺼주면 적용된다.

 

위와 같은 부분을 아래와 같이 주석하면 된다.

 

swap 파티션 잡는법.

발생 사유는 잘 모르겠지만.

top 명령으로 서버 자원을 보았을때.

위와 같이 Swap:        0k total,        0k used,        0k free,        0k cached 으로 스왑이

잡혀 있지 않는 경우가 발생하였다 ‘ㅅ’aaa

 

리부팅 해도 변함없이 0으로 잡혀 있을때 아래와 같이 스왑 파티션을 잡아주면 된다.

 

위의 명령으로 안된다면 파티션이 swap 으로 잡혀 있지 않거나 파티션 초기화가 안되었을 수 있다.

파티션은 fdsik 를 이용해서 잡고 swap 파티션 초기화는 아래 명령을 이용하여 재시도 한다.

 

 

옵션 을 적용하여 마운트 ‘ㅅ’a

기존의 글에서 DISK 의 IO 성능을 올리기 위해 /etc/fstab 수정하는 법에 대해서 설명했다.

 

작은 웹서버 ( 사이트 10개 미만 정도) 는 fstab 을 수정하는것으로도 충분 하지만.

대량의 웹서버 에서는 계정용 디스크를 별도 로 붙여 사용을 한다.

문제는 계정용 디스크가 커질경우 linux 에서 일정 기간동안 disk 사용시간이 넘어가는경우 부팅할때 disk 검사를 한다.

물론 디스크 검사를 해주는것도 중요하지만

원하지 않는 스케쥴링에 포람된 디스크 검사 때문에 서비스를 늦게 살리는건 말이 되지 않는다.

 

때문에 대형 웹서버 의 경우(사이트 100개 이상 서비스용도) 웹 디스크를 별도로 마운트 해서 사용한다.

부팅을 시켜두고 커널이 올라온 뒤에 root로 로그인을 해서 마운트 를 하고 서비스를 시작하기는 매우 귀찬다 ‘ㅅ’a

 

그래서 /etc/rc.d/rc.local 이란곳에 미리 등록해서 윈도우의 “시작프로그램” 처럼 부팅 후

마운트를 자동으로 하도록 설정한다.

 

1. 먼저 /etc/fstab 에 아래와 같이 웹용 디스크를 주석처리를 한다.

 

2. 이후에 /etc/rc.d/rc.local  에 아래와 같이 추가 하여 주석을 읽어들여 마운트 하는 부분을 추가한다.

주의사항 ## 마운트 체크할 디바이스를 지정한다. ( / 가 들어갈경우 \/ 와 같이 특수문자 처리를 한다. )

 

3. 마운트 이후에 httpd 를 시작해야 겠다.

근데 httpd 는 chkconfig 로 부팅 후 실행할 데몬에 추가하지 못한다. 그래서 마판가지로 /etc/rc.d/rc.local  추가한다.

이때 서버가 갑자기 다운된 경우 httpd.pid 파일이 남아 start 명령이 들어가지 않을수 있다.

pid 파일이 있는 상태에서 apache 를 시작 하면 존재 하던 pid 파일을 자동으로 지운다는 점에서 착안

아파치를 두번 시작한다. ‘ㅅ’a

(물론 두번째 시작은 ps 목록을 체크하고 이미 잘  실행중일경우  재실행 안되도록 했다.)

 

xcache 설치

모든 컴퓨터의 병목현상은 IO가 주원인이다.

발전속도가 가장 더디고. cpu / gpu / ram 의 속도는 나날이 높아져 가지만 IO의 성능은 거의

제자리 이다.(용량만 늘고 있다. hdd -> ssd 의 진화는 혁명적이긴 했다.)

또한 쉽게 dirty 상태에 빠지는게 IO 이기 때문에 IO 튜닝은 서버의 전반적인 속도향상에 크게 기여한다.

 

APM 서버에서 IO사용을 비약적으로 줄이기 위해서는 캐슁을 하면 되겠다.

xcache , APC 혹은 php 5.5 이상 포함된 opcache 가 대안이라고 볼수 있는데 일반적으로 zend 와의 충돌 때문에

xcache 를 사용하는편이 좋다. APC 역시 충분히 좋았지만.

APC의 경우 메모리 사용량이 xcache 보다 높았다.

그리고 APC 의 경우 문제시 되는 웹프로그램 좀더 많았다.(cake, moodle, kims-board 등)

 

공식 홈페이지 http://xcache.lighttpd.net

1. 설치방법.

–with-php-config 는 php-config 파일의 위치를 지정한다  일반적어도 안넣어도 되는 옵션 ‘ㅅ’a 혹은 버전에 따라 위치 변경이 되어야 하겠다.

여기서 /usr/local 에 직접 설치를 한이유는 xcache 의 관리자 페이지인 Cacher 를 사용하시 위해서이다.

 

2. php.ini 설정추가.

추가 항목중 xcache.size, xcache.count 은 적절히 수정해 주어야 한다.

일반적으로 xcache.count 는 cpu 코어 갯수로 지정한다. xcache.size 는 캐셔 관리자에서 사용량을 체크하여 변경한다.

메모리는 일반적이면 32~64MB 정도면 충분하나 한개의 사이트를 위한 설정이 아니기 때문에 넉넉히 잡았다.

단하나의 사이트를 위해서라면 64M ~ 128M 으로 xcache.gc_interval, xcache.ttl 을 0으로 해서 쓰면 성능이 가장 좋겠다.

 

관리자 설정을 할때(xcache.admin.user, xcache.admin.pass) 패스워드 생성은 간단한 php 코드로 생성할 수 있다.

 

3. 그리고 마지막으로 웹에서 관리자 페이지 접속을 위해 httpd.conf 파일에 아래 코드를 추가 했다.

 

4. 트러블슈팅

1) xcache 는 apache prefork 에서만 동작한다.

 

2) xcache 모듈 로드후 정상적으로 로드가 되지 않는다면 ( 메세지 // xcache.so: cannot open shared object file: No such file or directory )

php.ini 에서 extension_dir=”./” 부분을 주석 처리하거나 php API 에 따른 디렉토리 를 지정해주면 된다.

php API 에 따른 익스텐션 디렉토리는 make install 를 하면 어디에 복사했는지 보여준다 ‘ㅅ’a

 

3) php 5.2 대버전은 php 컴파일시 버그로 NTS 모드로 설치가 되지 않으며 TS 모드로만 설치가 된다.

NTS모드가 아닐경우 php 5.2 에서 에러메세지 표현이 되지 않으나 설치 후 모듈로드를 했을때 아파치가

프로세스는 떠있어 도 웹서버 기능을 제대로 수행하지 못했다.

아래 링크 글로 php 5.2 의 NTS 모드 설치를 진행후 해야 한다.

http://www.enteroa.com/2014/09/24/php-5-2-17-nts모드로-설치

 

4) xcache 는 기본적으로 최신버전이 하위버전의 모든 것을 대응하도록 포함 되므로 최신버전을 쓰는게 좋겠다.

다만 예외사항으로 php 4 는 1.2.2 대의 버전을 써야 하며 extension=xcache.so 가 아닌 zend_extension=xcache.so 으로 불러와야 한다.

아울러서 zend optimizer 보다 먼저 모듈로드가 되어야 하니 주의 하자.

또한 구버전의 관리자 디렉토리는 htdocs 안에 캐셔가 아닌 admin 폴더로 제공된다. httpd.conf 를 아래와 같이 수정하자.

php4 용 xcache 는 파일변경 여부 체크가 존재 하지 않기 때문에 캐쉬된 데이터가 지워지는 시간 동안

웹에서 호출시 신규로 올린 부분의 갱신이 늦어질수도 있다.

(이말은 완성된 홈페이지 가속 용도로만 쓰라는 소리이다 =ㅅ=a 수정된 파일의 즉시반영이 안됨)

 

shellshock 취약점 패치

명령어 실행으로 테스트를 진행한다.

 

 

위와 같이 나온다면 shellshock 취약 하다고 나오면 update가 필요 하겠다 ‘ㅅ’a

 

 

설치 완료후 재 테스트를 하자 ‘ㅅ’a

 

 

CentOS 4 에서는 yum update가 안될것이다 ‘ㅅ’a (OS 버전 확인 ~]# cat /etc/redhat-release )

아래 오라클 사이트에서 배포하는걸 받아서 rpm 명령어로 설치한댜 ‘ㅅ’a
32비트

 

64비트