나는 샤드 당 약 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을 시도하고 모든 것을 램 디스크에 보관하면 (아마 메모리 용량이 두 배가되지만 가치가있을 수 있습니다).
출처
2009-12-11 00:27:31
mjy