Tôi đã đạt một bức tường gạch khoảng 1 triệu bản ghi trên mỗi phân đoạn cũng như (sharding ở phía khách hàng, không có gì lạ mắt). Tôi cố gắng lựa chọn ttserver khác nhau và họ dường như làm cho có sự khác biệt, vì vậy tôi nhìn phía hạt nhân và phát hiện ra rằng
echo 80 > /proc/sys/vm/dirty_ratio
(giá trị trước đây là 10) đã đưa ra một cải tiến lớn - sau đây là tổng kích thước của dữ liệu (trên 8 mảnh, mỗi nút riêng của nó) được in mỗi phút:
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
Vì vậy, bạn có thể thấy rằng cải tiến là theo thứ tự 7-8 lần. Kích thước cơ sở dữ liệu vào khoảng 4,5GB cho mỗi nút tại thời điểm đó (bao gồm các chỉ mục) và các nút có RAM 8GB (vì vậy dirty_ratio của 10 có nghĩa là hạt nhân đã cố gắng giữ ít hơn 800MB bẩn).
Điều tiếp theo tôi sẽ thử là ext2 (hiện tại: ext3) và noatime và cũng lưu mọi thứ trên ramdisk (có thể sẽ lãng phí gấp đôi dung lượng bộ nhớ, nhưng có thể đáng giá).