SERVER/Etc2016. 11. 15. 16:32

1. 실제 여유 메모리 측정

리눅스의 경우 사용한 메모리에 대해서 캐쉬 영역에 반환하지않고 잡아 두고있음

그래서 서버 메모리 free 사이즈가 거의 없는 경우라고 판단 할 수 있음

실제로는 여유 메모리는 buffer_cache의 free로 보면됨


$ free -m -t
             total       used       free     shared    buffers     cached
Mem:         16042      15218        823          0        257       4649
-/+ buffers/cache:      10312       5730
Swap:         2043         14       2029
Total:       18086      15233       2852

자세한 설명은 아래 링크 참고

http://zetawiki.com/wiki/리눅스 명목메모리사용률, 실질메모리사용률


2. swap 사용 최소화

위에 보면 Buffer free가 있는데도 swap 발생하는 이슈가 있는 데 해당 이슈의 경우

swapoff 하던지 아니면 아래 같이 최소화 하는 방안이 있다.

#SWAP 사용량 최소화로 변경 (값범위 0 ~ 100 / 기본값 60 ) $ sysctl vm.swappiness=1 vm.swappiness = 1 #재부팅시에도 적용 $ vi /etc/sysctl.conf vm.swappiness = 1 #현재 swap 초기화 $ swapoff -a $ swapon -a #메모리 확인 $ free -m -t total used free shared buffers cached Mem: 16042 15168 874 0 258 4666 -/+ buffers/cache: 10244 5798 Swap: 2043 0 2043 Total: 18086 15168 2918

자세한 설명은 아래 링크 참고

 - http://zetawiki.com/wiki/리눅스_swappiness


3. 캐쉬 메모리 해체

0: 기본

1: Page cache를 해제 한다.

2: inode, dentry cache를 해제 한다.

3: Page cache, inode cache, dentry cache를 모두 해제 한다.

# Page cache 반환 처리

$ free -m -t
             total       used       free     shared    buffers     cached
Mem:         16042      15218        823          0        257       4649
-/+ buffers/cache:      10312       5730
Swap:         2043         14       2029
Total:       18086      15233       2852

$ echo 1 > /proc/sys/vm/drop_caches $ free -m -t total used free shared buffers cached Mem: 16042 10522 5519 0 2 359 -/+ buffers/cache: 10160 5881 Swap: 2043 0 2043 Total: 18086 10522 7563

자세한 설명은 아래 링크 참고

 - http://tumblr.lunatine.net/post/28546340998/faq-linux-메모리-효율을-위한-vfscachepressure

 - http://zetawiki.com/wiki/리눅스_캐시_메모리_비우기

Posted by 시니^^
SERVER/Etc2015. 1. 13. 11:05

iftop

 -  좀 오래되긴 한 툴인데 성능 테스트 할때 간단하게 네트워크로 들어오는 트래픽 실시간으로 체크하기 좋음



설치 방법은 Centos경우 간략하게 하면됨..
$ yum install iftop
왜만해서 저장소에 되어있을텐데 없으면 구글링하면 저장서 정보 많이 나옴

아니면 아래와 같이 소스 받아서 소스 설치 가능

$ sudo yum -y install ncurses-devel libpcap-devel $ wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz $ tar xvfvz iftop-0.17.tar.gz $ cd iftop-0.17 $ ./configure $ make $ make install


그리고 옵션 명령어로 네트워크 카드 인터페이스 별로 지정가능하다.
$ iftop -i eth0

추가적인 정보는 -h 옵션으로 확인 가능하다.
$ iftop -h 






Posted by 시니^^
Programming/PHP2014. 5. 22. 12:48

MSSQL에서 UTF-8 텍스트를 데이터를 넣을때 NVARCHAR타입으로 해서


INSERT INTO table ( text ) value ( N'한글테스트' ) 이런식으러 넣는 다


그런데 리눅스에서 PDO에서 uninxODBC SQL Server Native Client 11.0 넣으면 제대로 들어가지 않고 깨진다


그래서 아래 처럼  UTF-16LE로 변환해서 hexcode로 넣으니까 잘된다.. 

$sName = iconv('utf-8','UTF-16LE',$sName);
$sName = bin2hex($sName);
$sQuery = "INSERT INTO table (name) VALUES (  0x{$sName} )";

그리고 값을 가져올때 가끔식 일부데이터는 문제가 또 발생한다 ㅠㅠ


그래서 CAST 로 한번 변환해주니까 잘된다..

참가로 NVARCHAR(MAX)로 하니까 글이 전혀 나오지 않아서 그냥 NTEXT로 꽁수를 부렸다..

$sQuery = "SELECT CAST(name AS NTEXT) AS name FROM table ";

그리고 참고로 PHP5.3.3 버전에서 PDO ODBC nvarchar(max)데이터 어느 정도 이상되면 깨지는 현상이 나오는듯하다.


그래서 PHP5.5.12 / PHP5.4.28 / PHP5.3.28에서는 CAST해서 하면 큰 문제가 없다.


아무튼 Linux uninxODBC SQL Server Native Client 11.0 이래저래 문제가 좀 있는듯하다.


그래서 개인적으로는 Linux에서 MSSQL 연결하는 경우 SQL Server Native Client 보다는 FreeTDS를 사용을 권하고 싶다.


Posted by 시니^^