jdk 설치 



zookeeper 설치 
# wget http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

# tar zxvf zookeeper-3.4.5.tar.gz

# cp -Rf zookeeper-3.3.5 /usr/local/zookeeper

# cd /usr/local/zookeeper




# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/usr/data/zookeeper
# the port at which the clients will connect
clientPort=2181

server.1=175.207.8.151:2888:3888
server.2=175.207.8.152:2888:3888
server.3=175.207.8.153:2888:3888


기타 작업 
1. 디렉토리 생성 /usr/data/zookeeper 
2. 파일 생성  cat > /usr/data/zookeeper/myid  
3. myid파일에  멀티 서버 설정한 server.1  번호를 입력  .. ##문자 입력하니 java 숫자 변환 에러 발생 -_- 문자 된다고했는데 몬가 이상함 




 ip 포트 설정 

iptables -I OUTPUT 1 -p tcp --dport 2888 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 2888 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport 3888 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 3888 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport 2181 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 2181 -j ACCEPT
service iptables save
service iptables restart

 

log 4j 설정 
 Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE
zookeeper.console.threshold=INFO
zookeeper.log.dir=/usr/local/zookeeper/log
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
zookeeper.tracelog.dir=/usr/local/zookeeper/log
zookeeper.tracelog.file=zookeeper_trace.log

#
# ZooKeeper Logging Configuration
#

# Format is "<default threshold> (, <appender>)+

# DEFAULT: console appender only
#log4j.rootLogger=${zookeeper.root.logger}

# Example with rolling log file
#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE

# Example with rolling log file and tracing
log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE
"conf/log4j.properties" 58L, 2207C






path 설정 


# vi ~/.bash_profile

JAVA_HOME=/usr/local/java
ZOOKEEPER_HOME=/usr/local/zookeeper
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

# source ~/.bash_profile




주키퍼 테스트 블로그 : 


이클립스 플러그인 

http://www.massedynamic.org/mediawiki/index.php?title=Eclipse_Plug-in_for_ZooKeeper
 


 

성능 모니터를 이용하여 SQL Server 의 Disk I/O 를 측정하여 Disk 병목 현상이 있는지 확인 후 디스크 증가 등의 성능 튜닝을 진행한다.

 

<성능 모니터 카운터>
Disk Reads/sec : 선택된 디스크 (또는 디스크 어레이) 에서 초당 수행된 읽기 작업 횟수
Disk Writes/sec : 선택된 디스크 (또는 디스크 어레이) 에서 초당 수행된 쓰기 작업 횟수
Avg. Disk Queue Length : 샘플 간격 동안 선택된 디스크에 대해 큐에 있는 읽기 및 쓰기 요청의 평균 수
Avg. Disk Sec/Read : 샘플 간격 동안 선택된 디스크에서 데이터 읽기에 소요된 평균 시간(초)
Avg. Disk Sec/Write : 샘플 간격 동안 선택된 디스크에서 데이터 쓰기에 소요된 평균 시간(초)

 

<임계값>

카운터

임계값

초당 디스크 당 I/O 수

100 이하

Disk Reads/sec

0.015 (15ms) 이하

Disk Writes/sec

0.015 (15ms) 이하

Avg. Disk Queue Length

2 이하

 

<I/O 계산>
디스크 당 I/O 수 = [읽기 + (2 * 쓰기)] / 디스크 수

 

#RAID 10 어레이로 구성된 8개 디스크 드라이브의 예

카운터

측정값

Disk Reads/sec

420

Disk Reads/sec

300

Avg. Disk Queue Length

43

Avg. Disk Sec/Read

0.032

Avg. Disk Sec/Read

0.025

 

[420 + (2 * 300)] / 8 = 127.5 디스크 당 물리적 I/O 수

결과값 127.5는 초당 100 I/O라는 한계값을 초과하므로, 이 경우 약간의 디스크 병목을 가지게 된다. 읽기 및 쓰기에 걸린 시간 값만을 조사하여도 병목이 발생함을 알 수 있다. 또, 평균 큐 길이가 43으로 I/O 요청이 큐에서 잠시 기다림으로 인해 긴 대기시간이 발생함을 의미한다.

 

<디스크 최소 개수>

[420 읽기 + (2 * 300 쓰기)] = 1020 I/O
1020 전체 I/O / 100 디스크 당 I/O = 10.2 필요한 디스크 수 
10.2 디스크는 가질 수 없으므로 12개의 디스크로 반올림 (RAID 10을 위해서는 짝수개의 디스크 필요)

 

 

출처 : SQL Server 2000 성능 튜닝 (하성희 역)
 
BCP 란.
대량의 데이터를 파일을 통하여 빠르게 처리하는 명령어( 유틸리티) 
특징 
1. 특징 콜솔상에서 명령어를 입력
2. 원격지에 있는 데이터도 추출 할 수 있다.
3. 추출한 데이터는 로컬에 쌓인다. 

명령어 예제. 
 CMD 상에서 아래 명령어를 입력 한다.
bcp CHACHACHAF_REPLICATION..TB_CAR out bcp_data_titles2.txt -c -q -T -S 127.0.0.1,5432 -U 아이디 -P 비번
bcp CHACHACHAF_REPLICATION..TB_PRESENT_TROPHY out bcp_data_TB_PRESENT_TROPHY2.txt -c -q -T -S 127.0.0.1,5432 -U 아이디 -P 비번
bcp CHACHACHA2_DDR..TB_DDR out bcp_data_TB_DDR.txt -c -q -S 175.207.8.112,1434 -U 아이디 -P 비번

쿼리로 가능  ?  (비권장)
쿼리로 CMD 명령어가 가능하지만 권한 문제로 할 수 없음 오픈해 주면 가능 하지만 보안 문제가 있다고한다. 하지만
웹서비스 풀 쿼리를 이용하는데서 발생 할 수 있는 문제인듯하다. 게임에서는 프로시저를 통하기 때문에 발생 하지 않을듯 하다. 

예제 
DECLARE @query VARCHAR (500)
SET @query = 'bcp CHACHACHAF_REPLICATION..TB_PRESENT_TROPHY out D:\MS_SQl_DB_FILE\bcp\bcp_data_TB_PRESENT_TROPHY2.txt -c -q -T -S 127.0.0.1,5432 -U 비번 -P 아이디
EXEC MASTER ..xp_cmdshell @query
  





SELECT * FROM TB_CAR
SELECT * FROM TB_PRESENT_TROPHY
/*

bcp CHACHACHAF_REPLICATION..TB_CAR out bcp_data_titles2.txt -c -q -T -S 127.0.0.1,5432 -U sa -P ab1020!!

bcp CHACHACHAF_REPLICATION..TB_PRESENT_TROPHY out bcp_data_TB_PRESENT_TROPHY2.txt -c -q -T -S 127.0.0.1,5432 -U sa -P ab1020!!

bcp CHACHACHA2_DDR..TB_DDR out bcp_data_TB_DDR.txt -c -q -S 175.207.8.112,1434 -U sa -P q1w2e3r4t5y6

*/

BULK INSERT CHACHACHAF_REPLICATION.dbo .TB_CAR FROM 'D:\MS_SQl_DB_FILE\bcp\bcp_data_titles2.txt'



BULK INSERT CHACHACHAF_REPLICATION.dbo .TB_PRESENT_TROPHY FROM 'D:\MS_SQl_DB_FILE\bcp\bcp_data_TB_PRESENT_TROPHY2.txt'





DECLARE @query VARCHAR (500)
SET @query = 'bcp CHACHACHAF_REPLICATION..TB_PRESENT_TROPHY out D:\MS_SQl_DB_FILE\bcp\bcp_data_TB_PRESENT_TROPHY2.txt -c -q -T -S 127.0.0.1,5432 -U sa -P ab1020!!'
EXEC MASTER ..xp_cmdshell @query




bcp AdventureWorks2012.HumanResources.Department format nul -T -n -f Department-n.fmt

bcp AdventureWorks2012..MyTestFormatFiles format nul -c -t, -f myTestFormatFiles.Fmt -T


bcp AdventureWorks2012..MyTestFormatFiles format nul -c -t, -x -f myTestFormatFiles.Xml -T