2009-03-03 7 views
5

나는 tokyo cabinet 테이블 엔진을 평가 중이다. 삽입 속도는 1 백만 레코드를 기록한 후 상당히 느려집니다. 배치 크기는 100,000이며 트랜잭션 내에서 수행됩니다. 나는 xmsiz를 설정하려했지만 여전히 사용하지 않았다. 도쿄 내각에서이 문제에 직면 한 사람이 있습니까?도쿄 캐비닛 - 1million을 치고 난 후 느린 인서트

세부

도쿄 캐비닛 - 1.4.3
펄 바인딩 - 1.23
OS : 우분투 7.10 (VM웨어 플레이어가 윈도우 XP의 상단에)

답변

2

난 그냥 설정 캐시 옵션을 사용하면 훨씬 빠릅니다.

1

dbtune 함수에서 bnum 매개 변수를 수정하면 속도가 크게 향상 될 것입니다.

4

나는 샤드 당 약 1 백만 개의 레코드를 벽돌 벽에 썼다. (클라이언트 측에서 샤딩은 아무것도하지 않았다.) 나는 다양한 ttserver 옵션을 시도하고 그들이 어떤 차이가없는 듯, 그래서 커널 측에보고하고

echo 80 > /proc/sys/vm/dirty_ratio

(이전 값 10 살) 발견 큰 개선을했다 - 다음은의 전체 크기입니다

 
total: 14238792 records, 27.5881 GB size 
total: 14263546 records, 27.6415 GB size 
total: 14288997 records, 27.6824 GB size 
total: 14309739 records, 27.7144 GB size 
total: 14323563 records, 27.7438 GB size 
(here I changed the dirty_ratio setting for all shards) 
total: 14394007 records, 27.8996 GB size 
total: 14486489 records, 28.0758 GB size 
total: 14571409 records, 28.2898 GB size 
total: 14663636 records, 28.4929 GB size 
total: 14802109 records, 28.7366 GB size 

그래서 당신은 개선이 7-8 시간의 순서라고 볼 수 있습니다 : 데이터 (8 개 파편에, 자신의 노드의 각은) 분마다 인쇄. 데이터베이스 크기는 그 시점에서 노드 당 약 4.5GB 였고 (노드를 포함하여) 노드는 8GB RAM을 가지고 있습니다. 그래서 dirty_ratio는 커널이 약 800MB 미만을 유지하려한다는 것을 의미합니다.

ext2 (현재 : ext3)와 noatime을 시도하고 모든 것을 램 디스크에 보관하면 (아마 메모리 용량이 두 배가되지만 가치가있을 수 있습니다).

관련 문제