Hiệu suất của hệ thống tập tin Loopback


10

Có ai đã thực hiện bất kỳ bài kiểm tra hiệu năng / điểm chuẩn nào trên các hệ thống tệp loopback của Linux không? Những gì có kinh nghiệm của bạn đã được cho đến nay. Có sự xuống cấp nghiêm trọng trong hiệu suất? Làm thế nào về sự mạnh mẽ?

http://freshmeat.net/articles/virtual-filesystem-building-a-linux-filesystem-from-an-iverse-file


Sẽ khá đơn giản để chạy bonnie ++ trên đĩa gốc của bạn và trên đĩa loopback để so sánh hiệu suất.
ceving

Câu trả lời:


11

Tôi đã thực hiện một chút điểm chuẩn với các thao tác ghi trong thiết bị loopback. Đây là kết luận:

  • Nếu bạn đồng bộ hóa sau mỗi lần ghi, thì thiết bị loopback hoạt động kém hơn đáng kể (chậm gần gấp đôi).
  • Nếu bạn cho phép bộ đệm đĩa bộ lập lịch IO thực hiện công việc của họ, thì hầu như không có sự khác biệt nào giữa việc sử dụng thiết bị loopback và truy cập đĩa trực tiếp.

Kết quả điểm chuẩn

Đầu tiên, tôi chạy điểm chuẩn trên thiết bị loopback ở tốc độ 8GB và thiết bị loopback trong thiết bị loopback đó ( có đồng bộ hóa sau mỗi thao tác ghi ):

ext4 trong tmpfs:

Measured speed: 557, 567, 563, 558, 560, 559, 556, 556, 554, 557
Average speed : 558.7 MB/s  (min 554  max 560)

ext4 trong extf trong tmpfs:

Measured speed: 296, 298, 295, 295, 299, 297, 294, 295, 296, 296
Average speed : 296.1 MB/s  (min 294  max 299)

Rõ ràng, có một số khác biệt về hiệu suất khi sử dụng các thiết bị loopback với tính năng đồng bộ hóa khi ghi.
Sau đó, tôi lặp lại thử nghiệm tương tự trên ổ cứng của mình.
ext4 (HDD, 1000 MB, 3 lần):

Measured speed: 24.1, 23.6, 23.0
Average speed : 23.5 MB/s  (min 23.0  max 24.1)

ext4 trong ext4 (HDD, 945MB):

Measured speed: 12.9, 13.0, 12.7
Average speed : 12.8 MB/s  (min 12.7  max 13.0)

Cùng một điểm chuẩn trên ổ cứng, bây giờ không đồng bộ hóa sau mỗi lần ghi ( time (dd if=/dev/zero bs=1M count=1000 of=file; sync), được đo là <size>/ <time in seconds>).
ext4 (HDD, 1000 MB):

Measured speed: 84.3, 86.1, 83.9, 86.1, 87.7
Average speed : 85.6 MB/s  (min 84.3  max 87.7)

ext4 trong ext4 (HDD, 945MB):

Measured speed: 89.9, 97.2, 82.9, 84.0, 82.7
Average speed : 87.3 MB/s  (min 82.7  max 97.2)

(đáng ngạc nhiên, điểm chuẩn loopback trông tốt hơn so với điểm chuẩn của đĩa thô, có lẽ là do kích thước nhỏ hơn của thiết bị loopback, do đó thời gian dành cho đồng bộ hóa trên đĩa thực tế ít hơn)

Thiết lập điểm chuẩn

Đầu tiên, tôi đã tạo một hệ thống tập tin loopback 8G trong my / tmp (tmpfs):

truncate /tmp/file -s 8G
mkfs.ext4 /tmp/file
sudo mount /tmp/file /mnt/
sudo chown $USER /mnt/

Sau đó, tôi đã thiết lập đường cơ sở bằng cách điền vào tệp loopback được gắn với dữ liệu:

$ dd if=/dev/zero bs=1M of=/mnt/bigfile oflag=sync
dd: error writing '/mnt/bigfile': No space left on device
7492+0 records in
7491+0 records out
7855763456 bytes (7.9 GB) copied, 14.0959 s, 557 MB/s

Sau khi làm điều đó, tôi đã tạo một thiết bị loopback khác trong thiết bị loopback trước đó:

mkdir /tmp/mountpoint
mkfs.ext4 /mnt/bigfile
sudo mount /mnt/bigfile /tmp/mountpoint
sudo chown $USER /tmp/mountpoint

Và chạy lại điểm chuẩn, mười lần:

$ dd if=/dev/zero bs=1M of=/tmp/mountpoint/file oflag=sync
...
7171379200 bytes (7.2 GB) copied, 27.0111 s, 265 MB/s

và sau đó tôi ngắt kết nối tệp thử nghiệm và xóa nó:

sudo umount /tmp/mountpoint
sudo umount /mnt

(tương tự đối với thử nghiệm trên ổ cứng, ngoại trừ tôi cũng đã thêm count=1000để ngăn kiểm tra lấp đầy toàn bộ đĩa của tôi)
(và đối với thử nghiệm không ghi đồng bộ, tôi đã chạy hẹn giờ ddsyncvận hành)


0

Tôi không có vấn đề gì. Tất cả đều là đá rắn. Bộ đệm của hệ thống tập tin và bộ lập lịch IO trong Linux đủ rõ ràng để nó không tạo ra bất kỳ sự khác biệt đáng chú ý nào giữa việc yêu cầu đĩa trực tiếp và yêu cầu một phần của tệp trên đĩa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.