Tốc độ ghi RAID nhanh hơn tốc độ đọc RAID


2

Chúng tôi vừa mua một mảng RAID 24 ổ đĩa mới và một LSI 9285-8e Bộ điều khiển RAID. Chúng tôi đang thấy 2 điều có vẻ lạ đối với chúng tôi.

  1. Tốc độ ghi nhanh hơn tốc độ đọc (với một trong hai ext4 hoặc là xfs hệ thống tập tin).

  2. Có một đầu gối ở tốc độ đọc sao cho khi đó đọc kích thước (với dd ) lớn hơn 128Kbyte, hiệu suất giảm khoảng 30%.

Dưới đây là kết quả kiểm tra mới nhất với 512k kích thước dải byte byte và xfs hệ thống tập tin:

dd bs=1024k if=junk of=/dev/null        => 9.11s = 1.4 GB/s
dd bs=512k if=junk of=/dev/null         => 9.38s = 1.3 GB/s
dd bs=256k if=junk of=/dev/null         => 9.78s = 1.3 GB/s
dd bs=128k if=junk of=/dev/null         => 7.03s = 1.8 GB/s
dd bs=64k if=junk of=/dev/null          => 6.77s = 1.9 GB/s
dd bs=32k if=junk of=/dev/null          => 6.79s = 1.9 GB/s
dd bs=16k if=junk of=/dev/null          => 6.49s = 1.9 GB/s
dd bs=8k if=junk of=/dev/null           => 6.91s = 1.8 GB/s
dd bs=4k if=junk of=/dev/null           => 6.46s = 1.9 GB/s

.

Tôi hiện đang sử dụng RAID0, nhưng tôi đã có kết quả gần như giống hệt với RAID6.

Nó chỉ là máy chủ mới được cài đặt. Không có ứng dụng khác đang chạy và không có kết nối mạng gây ra bất kỳ gián đoạn. Cài đặt này là trên OpenSuSE 11.4. Chúng tôi có thể thực hiện các bài kiểm tra đọc ngẫu nhiên, nhưng vì mục đích của chúng tôi là truyền phát video (ví dụ: 4K 3D hoặc 8K), chúng tôi thực sự chỉ lo lắng về việc đọc tuần tự.

Bất kỳ ý tưởng làm thế nào để tăng tốc độ đọc?


Bạn đang sử dụng CPU nào?
sblair

CPU chúng tôi đang sử dụng là Xeon X5687
Donald McLachlan

Câu trả lời:


1

Thẻ RAID được chỉ định (PDF) vì có tốc độ ghi nhanh hơn tốc độ đọc, nên không có gì bất thường xảy ra ở đó. Tôi đoán là 1GB bộ nhớ cache trên bo mạch được sử dụng làm bộ đệm ghi để giúp xóa tan mọi sự chậm trễ tìm kiếm gây ra bởi các ổ cứng tương đối chậm. Nhưng khi đọc, rõ ràng bạn sẽ luôn phải chờ các đĩa lấy dữ liệu.

Đối với điểm đầu gối trong tốc độ đọc, điều này có thể là do lấp đầy bộ đệm ở đâu đó dọc theo chuỗi. Bộ đệm Intel CPU L2 thường là 256 kB (mỗi lõi), với bộ đệm L3 lớn hơn (được chia sẻ giữa các lõi). Giả sử rằng dd thực thi và bất cứ thứ gì khác mà HĐH cần trong quá trình kiểm tra ít nhất là một byte và không bao giờ vượt quá khoảng 128kB. Điều này có nghĩa là các bài kiểm tra kích thước khối 128KB (hoặc ít hơn) hầu như không bị CPU đánh giá, nhưng hiệu suất có thể giảm đáng kể đối với kích thước khối 256kB do độ trễ của việc tra cứu bộ đệm L3 (hoặc bộ nhớ chính) thường xuyên. Nó có thể là trùng hợp ngẫu nhiên, nhưng nó phù hợp với dữ liệu thử nghiệm của bạn.


Ý tưởng thú vị. Nếu đó là trường hợp sẽ không giới hạn đọc dd từ / dev / zero? Khi đọc / dev / null Count = 960000 được 14,4GB / s Nếu có vấn đề, CPU là Xeon X5687.
Donald McLachlan

@DonaldMcLachlan Có lẽ đặt tệp đầu vào thành /dev/zero/, là một tệp đặc biệt được tạo bởi HĐH, dẫn đến tối ưu hóa. Nó luôn có thể trỏ đến một byte bộ nhớ bằng 0x00, không bao giờ rời khỏi (và không bao giờ lấp đầy) bộ đệm CPU. Nhưng vơi if=junk, phải có một tệp thực sự gọi là "rác" phải được đọc từ đĩa và được truyền vào bộ đệm CPU trong quá trình truyền. Một lần nữa, đây có thể là một sự đơn giản hóa lớn, hoặc chỉ đơn giản là sai. Ví dụ, cũng có thể có một DMA thiết bị liên quan, thay vì một lõi CPU đầy đủ.
sblair
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.