Có ai có bất kỳ công thức nào, hoặc có thể một số dữ liệu mẫu từ môi trường của họ có thể giúp tôi ước tính dung lượng đĩa sẽ được sử dụng bởi than chì trên mỗi datapoint không?
Có ai có bất kỳ công thức nào, hoặc có thể một số dữ liệu mẫu từ môi trường của họ có thể giúp tôi ước tính dung lượng đĩa sẽ được sử dụng bởi than chì trên mỗi datapoint không?
Câu trả lời:
whisper-info.py
cung cấp cho bạn nhiều thông tin chuyên sâu về nội dung và cách thức mỗi tệp được tổng hợp, bao gồm kích thước của tệp.
Tuy nhiên, nó chỉ hữu ích cho các tập tin thì thầm hiện có.
Khi bạn muốn xem kích thước dự đoán của một lược đồ trước khi đặt nó vào vị trí, hãy thử Máy tính thì thầm, chẳng hạn như một lược đồ có sẵn tại https://gist.github.com/jjmaestro/5774063
BIÊN TẬP:
Khi được hỏi về một ví dụ ...
lưu trữ_schema:
{
:catchall => {
:priority => "100",
:pattern => "^\.*",
:retentions => "1m:31d,15m:1y,1h:5y"
}
}
Nhìn vào tập tin của tôi applied-in-last-hour.wsp
, ls -l
sản lượng
-rwxr-xr-x 1 root root 4415092 Sep 16 08:26 applied-in-last-hour.wsp
và whisper-info.py ./applied-in-last-hour.wsp
sản lượng
maxRetention: 157680000
xFilesFactor: 0.300000011921
aggregationMethod: average
fileSize: 4415092
Archive 0
retention: 604800
secondsPerPoint: 10
points: 60480
size: 725760
offset: 52
Archive 1
retention: 2678400
secondsPerPoint: 60
points: 44640
size: 535680
offset: 725812
Archive 2
retention: 157680000
secondsPerPoint: 600
points: 262800
size: 3153600
offset: 1261492
Vì vậy, về cơ bản, bạn kết hợp các máy chủ của mình cho mỗi trận đấu duy trì cho mỗi phân đoạn thời gian duy trì trên mỗi chỉ số, nhân với một hệ số mà bạn dự định sẽ áp dụng điều này, tính đến số lượng thống kê mới mà bạn sẽ theo dõi. Sau đó, bạn lấy bất kỳ dung lượng lưu trữ nào và ít nhất là gấp đôi nó (vì chúng tôi đang mua dung lượng và chúng tôi biết chúng tôi sẽ sử dụng nó ...)
ls -l
kết quả, tôi coi đó là byte. Khi tôi thêm kích thước của kho lưu trữ trong tệp .wsp (như được báo cáo bởi whisper-info.py
), chúng sẽ gần với kích thước tệp .wsp tổng thể (phần còn lại tôi giả sử là siêu dữ liệu và như vậy. Đây phải là kích thước của tệp cho tất cả thời gian, khi dữ liệu rơi xuống độ phân giải dữ liệu thấp hơn và các điểm dữ liệu cũ bị loại bỏ.
ServerCount * MetricCount * 4.5MBytes
Trong tài liệu về thống kê, họ đưa ra một ví dụ cho chính sách lưu giữ dữ liệu.
Các mức lưu giữ 10s:6h,1min:7d,10min:5y
là 2160 + 10080 + 262800 = 275040 điểm dữ liệu và chúng cho kích thước lưu trữ là 3,2 MiB .
Giả sử mối quan hệ tuyến tính, con số này sẽ xấp xỉ 12,2 byte trên mỗi điểm dữ liệu .
Không có kinh nghiệm trực tiếp với Graphite, nhưng tôi tưởng tượng logic tương tự như chúng tôi đã sử dụng cho Cacti hoặc bất cứ điều gì khác RRD hoặc điều khiển theo thời gian sẽ được áp dụng (Graphite không sử dụng RRD trong nội bộ nữa nhưng logic lưu trữ có vẻ tương đương.)
Câu trả lời nhanh là "Có thể không có nhiều không gian như bạn nghĩ bạn sẽ cần."
Câu trả lời dài liên quan đến một số toán học cụ thể trang web. Đối với hệ thống giám sát của chúng tôi (InterMapper) tôi tìm ra các khoảng thời gian lưu, độ phân giải và kích thước điểm dữ liệu, thực hiện một số phép nhân và thêm chi phí.
Ví dụ: tôi sẽ sử dụng dung lượng ổ đĩa - chúng tôi lưu trữ các số liệu với độ chính xác 5 phút trong 30 ngày, độ chính xác 15 phút trong 60 ngày nữa và sau đó là độ chính xác hàng giờ trong 300 ngày nữa và chúng tôi đang sử dụng 64 -bit (8 byte) số nguyên để lưu trữ nó:
Với 8 byte cho mỗi mẫu khoảng 173KB, cộng với chi phí hoạt động tốt cho việc lập chỉ mục lưu trữ và tương tự mang lại khoảng 200KB cho dữ liệu sử dụng đĩa của một phân vùng (bất kỳ lỗi nào có xu hướng đánh giá quá cao).
Từ các số liệu cơ bản, tôi có thể tính ra kích thước "trung bình cho mỗi máy" (10 phân vùng đĩa, dung lượng trao đổi, RAM, tải trung bình, truyền mạng và một vài thứ khác) - hoạt động với khoảng 5 MB cho mỗi máy.
Tôi cũng thêm 10% khỏe mạnh vào đầu số cuối cùng và làm tròn số, vì vậy tôi kích thước mọi thứ ở mức 6MB cho mỗi máy.
Sau đó, tôi nhìn vào 1TB dung lượng mà tôi đã đặt xung quanh để lưu trữ dữ liệu số liệu để lập biểu đồ và nói "Vâng, có lẽ tôi sẽ không hết dung lượng trong đời trừ khi chúng tôi phát triển rất nhiều!" :-)
Tôi có 70 nút tạo ra rất nhiều dữ liệu. Sử dụng Carbon / Whisper, một nút đã tạo ra 91k tệp một mình (nút tạo ra nhiều lược đồ, mỗi nút có nhiều bộ đếm và trường biến cần chọn, ví dụ: (nút tên). (Lược đồ). (Bộ đếm). )....và như thế).
Điều này cung cấp mức độ chi tiết tôi cần để vẽ bất kỳ biểu đồ nào tôi muốn. Sau khi chạy tập lệnh để điền vào 69 nút còn lại, tôi có 1,3Tb dữ liệu trên đĩa. Và đó chỉ là giá trị 6 giờ của dữ liệu / nút. Điều làm cho tôi là tệp csv phẳng thực tế cho dữ liệu có giá trị 6 giờ là khoảng 230Mb / nút. 70 nút là ~ 16Gb dữ liệu. Lược đồ lưu trữ của tôi là 120 giây: 365d.
Tôi còn khá mới đối với cơ sở dữ liệu, vì vậy tôi có thể đang làm gì đó sai, nhưng tôi đoán đó là tất cả chi phí cho mỗi mẫu.
Vì vậy, đây là một thử nghiệm thú vị, nhưng tôi không nghĩ việc sử dụng thì thầm cho loại dữ liệu tôi đang lưu trữ là điều hợp lý. MongoDB có vẻ như là một soluton tốt hơn, nhưng tôi cần tìm ra cách sử dụng nó như một phần phụ trợ cho Grafana.