2009-03-03 24 views
5

Tôi đang đánh giá tokyo cabinet Table engine. Tốc độ chèn chậm lại đáng kể sau khi đạt 1 triệu bản ghi. Kích thước lô là 100.000 và được thực hiện trong giao dịch. Tôi đã thử thiết lập xmsiz nhưng vẫn không sử dụng. Có ai phải đối mặt với vấn đề này với tủ tokyo?Nội các Tokyo - Chèn chậm hơn sau khi nhấn 1million

Chi tiết

Tokyo tủ - 1.4.3
Perl bindings - 1,23
Hệ điều hành: Ubuntu 7.10 (VMware Player trên Windows XP)

Trả lời

2

tôi chỉ thiết lập tùy chọn bộ nhớ cache và bây giờ nhanh hơn đáng kể.

1

Tôi nghĩ rằng việc sửa đổi thông số bnum trong hàm dbtune cũng sẽ giúp cải thiện tốc độ đáng kể.

4

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á).

Các vấn đề liên quan