|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
12-05-2015, 10:38 AM | #1 |
Guest
Trả Lời: n/a
|
Block size là gì? nên chọn Block size nào phù hợp
Block size là gì? nên chọn Block size nào phù hợp
Đối với hệ thống Raid + Chỉ định Block Size: Đây là chìa khóa ảnh hưởng rất lớn tới hiệu năng của giàn ổ cứng chạy RAID. Đối với RAID dạng Striping, Block size cũng có nghĩa là Stripe Size. Nếu thông số này thiết lập không phù hợp với nhu cầu sử dụng thì sẽ gây lãng phí bộ nhớ và giảm hiệu năng. Ví dụ nếu Block Size có giá trị là 64KB thì tối thiểu sẽ có 64KB được ghi vào ổ đĩa trong mọi trường hợp, ngay cả khi đó là một file text có dung lượng 2KB. Vì thế giá trị này nên xấp xỉ tương ứng với kích thước trung bình của các file bạn dùng. Nếu ổ cứng chứa nhiều file nhỏ ví dụ tài liệu Word, bạn nên để block size bé, nếu chứa nhiều phim ảnh hoặc nhạc, block size lớn sẽ cho hiệu năng cao hơn (nhất là với hệ thống RAID 0). Bên cạnh đó, Block size còn có một chức năng khác quyết định việc file sẽ được ghi vào đâu. Quay về với ví dụ Block Size 64KB, nếu như file có kích thước nhỏ hơn 64KB, nó sẽ chỉ được ghi vào một ổ cứng trong hệ thống RAID và như vậy sẽ không có bất cứ sự cải thiện hiệu năng nào. Trong một trường hợp khác, một file có kích thước 150KB sẽ được ghi vào 3 ổ đĩa với các đoạn 64KB + 64KB + 22KB và bộ điều khiển có thể đọc thông tin từ ba ổ cùng lúc cho phép tăng tốc đáng kể. Nếu bạn chọn block size là 128KB thì file đó chỉ được ghi vào 2 ổ 128KB + 22KB mà thôi. Thực tế bạn nên chọn Block Size là 128KB cho các máy tính để bàn trừ khi có nhu cầu riêng. Tại sao chọn Block size là 64MB? Nhiều bạn chắc chắn sẽ đặt câu hỏi, tại sao data block size mặc định trong HDFS lại là 64MB trong khi kích cỡ của data block trong ổ đĩa thông thường chỉ có 4KB. Trước hết, ta cần hiểu khái niệm và data block size. Data block size là đơn vị dữ liệu nhỏ nhất mà hệ thống có thể lưu trữ. Block size có thể là 1KB hay 64MB, v.v… Nếu file ta lưu trữ vượt quá kích cỡ của 1 block, ta sẽ cần thêm một data block khác để lưu trữ. Mục đích của HDFS là quản lý những file lớn. Nếu ta cần quản lý những file nhỏ thì chỉ nên đặt thông số data block size nhỏ hơn còn nếu làm việc với file lớn thì nên dùng data block size lớn hơn. Ví dụ, nếu ta có 1 file với kích cỡ 1000MB và mỗi data block có kích cỡ 4KB, ta sẽ phải gửi 256,000 yêu cầu để lấy được file này. Vậy 256,000 request lấy 4KB/1 request so với 1 request lấy 1000MB có gì lợi hơn chăng? Ở đây ta cần nhớ rằng HDFS làm việc với dữ liệu phân tán nên những yêu cầu này phải chuyển qua mạng với rất nhiều phí tổn. Mỗi request lại phải gửi lên Name Node (một nơi quản lý và lưu thông tin về các file trong Hadoop) để lấy được vị trí file, do đó lượng giao dịch là rất lớn. Còn nếu ta dùng data block với kích cỡ 64MB, lượng request chỉ còn 16, điều này giúp giảm đáng kể chi phí và giảm tải cho Name Node. |
|
|