zookeeper 서비스 최적화

2507 단어 zookeeper
1. 스냅샷 파일과 사무 로그 파일은 각각 다른 디스크에 걸려 있다.zoo.cfg 파일에서 데이터dir는 스냅샷 데이터를 저장하고 데이터LogDir는 사무 로그를 저장합니다.zookeeper 업데이트 작업 과정: 사무 로그를 쓰고 메모리를 쓰면 주기적으로 디스크에 떨어진다. (메모리를 스냅샷 파일로 리셋한다.)트랜잭션 로그는 쓰기 요청의 성능에 큰 영향을 미치므로 DataLogDir가 있는 디스크의 성능이 양호하고 경쟁자가 없음을 보장합니다.
2. 기본 jvm는 Xmx, Xms 등의 정보를 설정하지 않았습니다. conf 디렉터리에서java를 만들 수 있습니다.env 파일(메모리 더미 공간은 반드시 기계 메모리보다 작고 swap 사용을 피해야 함) export JVMFLAGS = "-Xms2048m -Xmx2048m $JVMFLAGS"
3. 일별로 zookeeper 일지를 작성하여 zookeeper를 피한다.out 파일이 너무 큽니다.
zkEnv.sh 파일 로그 출력 방식을 CONSOLE에서 ROLLINGFILE로 변경합니다.
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
#   ZOO_LOG4J_PROP="INFO,CONSOLE"
    ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi

conf/log4j.properties 설정은 DailyRollingFileAppender 파일을 일별로 생성하도록 합니다.
#zookeeper.root.logger=INFO, CONSOLE
zookeeper.root.logger=INFO, ROLLINGFIL
log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.DatePattern='.'yyyy-MM-dd

# Max log file size of 10MB
#log4j.appender.ROLLINGFILE.MaxFileSize=10MB

4. zoo.cfg 파일에서 skipacl=yes, ACL 검증을 무시하면 권한 검증과 관련된 조작을 줄이고 성능을 향상시킬 수 있습니다.
5. zoo.cfg 파일에서forceSync=no, 이것은 쓰기 요청의 성능 향상에 도움이 됩니다. 요청을 쓸 때마다 페이지cache에서 디스크로 고체화되어야 쓰기가 성공적으로 되돌아오는 것을 말합니다.쓰기 요청 수가 어느 정도에 도달했을 때, 후속 쓰기 요청은 앞에서 쓰기 요청한forceSync 작업을 기다리며, 일정한 시간을 지연시킵니다.저연속 쓰기 요청을 원하면forceSync=no를 설정하고 페이지cache에 데이터를 쓴 후 되돌려줍니다.그러나 기계가 전기가 끊겼을 때 페이지캐치의 데이터를 잃어버릴 수 있습니다.기본값은 forceSync=yes이고 yes의 경우 fsync.를 설정할 수 있습니다.Warningthresholdms=50 데이터가 디스크에 굳어지면 fsync가 50ms를 넘으면 zookeeper에 있습니다.out에서 Warn 로그를 출력합니다. (forceSync=yes 유효합니다.)
6. 글로벌 OutstandingLimit=100000 클라이언트가 너무 많이 연결되어 클라이언트 요청을 제한하고 OOM을 피한다
7. zoo.cfg 파일의 preAllocSize=64M 로그 파일 미리 할당 크기snapCount=100000 쓰기 트랜잭션 수, 스냅샷 생성 빈번하면 매개 변수를 올바르게 조절할 수 있는 스냅샷 생성일반적인zk의 응용은 읽기보다 쓰기를 제창하고 성능이 비교적 좋다(10:1). 메모리 데이터는 분포식 데이터의 최종 일치를 조율하는 데 사용된다.너무 자주 쓰기 때문에 캐시를 사용하는 것이 좋습니다.
8. 로그 파일이 자동으로 지워집니다. (성능을 추구하면 수동으로 지울 수 있습니다.) autopurge입니다.snapRetainCount=3 # The number of snapshots to retain in dataDir autopurge.purgeInterval=24 # Purge task interval in hours Set to "0"to disable auto purge feature

좋은 웹페이지 즐겨찾기