Làm cách nào để cải thiện hiệu suất đĩa máy chủ của tôi


10

Tôi có HP microserver chạy Ubuntu 10.04 LTS. Đó là một máy chủ năng lượng thấp với 5 khoang ổ đĩa bên trong. Tôi sử dụng nó để sao lưu các máy chủ từ xa, VPS và máy tính xách tay địa phương qua mạng. Tôi muốn có được hiệu suất tốt nhất từ ​​các đĩa, nhưng tôi không biết nếu nó được thiết lập tối ưu, vì vậy tôi đang tìm một số lời khuyên.

Máy chủ của tôi chạy rsnapshot nhiều lần trong ngày để sao lưu máy chủ từ xa. Phần sao lưu gia tăng thực tế mất rất ít thời gian. Thời gian đáng kể được dành để làm những việc như: -

/bin/cp -al /srv/rsnapshot/hourly.0 /srv/rsnapshot/hourly.1

Mà mất khoảng 2 giờ. Tôi nhận ra có một tập tin nhỏ trong đó.

$ sudo du -hs hourly.1
659G    hourly.1

Ngoài ra khi rsnapshot xóa một bản sao lưu cũ, việc này có thể mất nhiều thời gian: -

/bin/rm -rf /srv/rsnapshot/daily.6/

Mà mất khoảng nửa giờ.

Các câu hỏi của tôi như sau, cấu hình của máy chủ và một số thống kê IO được trình bày chi tiết bên dưới. Tất nhiên tôi có thể cung cấp thêm thông tin gỡ lỗi nếu cần: -

Làm thế nào tôi có thể xác định nơi tắc nghẽn?

Tôi có đạt đến giới hạn của những gì có khả năng (IO khôn ngoan) với hộp này không?

Có bất kỳ chỉnh sửa hiệu suất tôi có thể thực hiện?

Tôi có nên sử dụng một cấp độ RAID khác nhau?

Sẽ có ý nghĩa khi trao đổi hai trong số các đĩa RAID bên trong (một nửa của mỗi gương) với hai 'nửa khác của gương khác' trên mảng bên ngoài?

Lưu ý: Tôi phần nào không có xu hướng làm những việc như biên dịch kernel của riêng tôi. Lý tưởng nhất là tôi muốn sử dụng 10.04 LTS, trừ khi có một số phép thuật trong các phiên bản sau đó giúp mọi thứ hoạt động nhanh hơn rất nhiều.

Bên trong máy chủ có đĩa khởi động SATA 1x160GB và đĩa 4x2TB: -

Disk /dev/sde: 160.0 GB, 160041885696 bytes
Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdh: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdi: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes

Bốn đĩa 2TB bên trong nằm trong thiết lập MD RAID10 phần mềm: -

md0 : active raid10 sdg1[3] sdh1[0] sdi1[2] sdf1[1]
      3907023872 blocks 64K chunks 2 near-copies [4/4] [UUUU]

Ngoài ra, tôi có vỏ ổ đĩa EDGE10 bên ngoài được kết nối qua thẻ PCI-E eSATA và chứa thêm bốn ổ đĩa 500GB: -

Disk /dev/sda: 500.1 GB, 500107862016 bytes
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
Disk /dev/sdc: 500.1 GB, 500107862016 bytes
Disk /dev/sdd: 500.1 GB, 500107862016 bytes

Đây cũng là thiết lập như một mảng MD RAID10

md1 : active raid10 sdb1[1] sda1[0] sdd1[3] sdc1[2]
      976767872 blocks 64K chunks 2 near-copies [4/4] [UUUU]

md0 và md1 được kết hợp để tạo ra một LVM lớn. Lưu ý: Gần đây tôi chỉ thêm mảng bên ngoài, vì vậy nó khá trống, tôi không nghĩ có bất kỳ khối nào trên đó ngay bây giờ.

Điều này được trình bày dưới dạng một khối LVM: -

--- Logical volume ---
LV Name                /dev/data/data
VG Name                data
LV UUID                amZCgU-sQLi-R363-dUFx-Bcdf-iwlt-ZNnDp8
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                4.54 TiB
Current LE             1190134
Segments               2
Allocation             inherit
Read ahead sectors     auto
- currently set to     512
Block device           251:0

Được định dạng là EXT4 và được gắn kết là / srv: -

/dev/mapper/data-data on /srv type ext4 (rw)

Có nhiều không gian trống.

/dev/mapper/data-data
                      4.5T  2.2T  2.1T  51% /srv

Các thông tin khác có thể hữu ích: -

$ uname -a
Linux ubuntuserver 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux

.

00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] (rev 40)
02:00.0 RAID bus controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)

Khi thực hiện lệnh cp trong rsnapshot, tôi thấy phần sau trong iostat: -

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.55    0.00    5.47   66.14    0.00   27.85

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sde               0.00     0.00    0.10    0.00     0.80     0.00     8.00     0.00    0.00   0.00   0.00
sdf               0.00   407.50    0.00   66.80     0.00  3790.40    56.74   124.86 1524.88  13.55  90.50
sdh               0.00   406.90    0.00   66.90     0.00  3790.40    56.66    92.89 1230.52  13.21  88.40
sdi               0.00   407.80    5.50   70.20    44.00  3824.00    51.10   113.83 1333.84  12.34  93.40
sdg               0.00   406.80    6.10   71.60    48.80  3827.20    49.88    64.32  787.68  11.69  90.80
md0               0.00     0.00   11.50 1484.60    92.00 11876.80     8.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00   11.50 1484.70    92.00 11877.60     8.00  5331.18  471.91   0.63  94.70
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Vì vậy, về cơ bản rất nhiều bài viết, rất nhiều chờ đợi IO.

Vì vậy, ngay bây giờ hộp không hoạt động, tôi đã đình chỉ tất cả các công việc.

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdf               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdh               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdi               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdg               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Trông đào!

$ sudo hdparm -T -t /dev/sd[a-i]

/dev/sda:
 Timing cached reads:   2532 MB in  2.00 seconds = 1265.95 MB/sec
 Timing buffered disk reads:  270 MB in  3.02 seconds =  89.53 MB/sec

/dev/sdb:
 Timing cached reads:   2516 MB in  2.00 seconds = 1258.07 MB/sec
 Timing buffered disk reads:  264 MB in  3.02 seconds =  87.37 MB/sec

/dev/sdc:
 Timing cached reads:   2442 MB in  2.00 seconds = 1220.80 MB/sec
 Timing buffered disk reads:  272 MB in  3.00 seconds =  90.60 MB/sec

/dev/sdd:
 Timing cached reads:   2520 MB in  2.00 seconds = 1259.64 MB/sec
 Timing buffered disk reads:  272 MB in  3.02 seconds =  90.07 MB/sec

/dev/sde:
 Timing cached reads:   2524 MB in  2.00 seconds = 1261.48 MB/sec
 Timing buffered disk reads:  306 MB in  3.01 seconds = 101.56 MB/sec

/dev/sdf:
 Timing cached reads:   2366 MB in  2.00 seconds = 1183.28 MB/sec
 Timing buffered disk reads:  388 MB in  3.01 seconds = 128.88 MB/sec

/dev/sdg:
 Timing cached reads:   2536 MB in  2.00 seconds = 1267.52 MB/sec
 Timing buffered disk reads:  400 MB in  3.00 seconds = 133.12 MB/sec

/dev/sdh:
 Timing cached reads:   2538 MB in  2.00 seconds = 1269.08 MB/sec
 Timing buffered disk reads:  426 MB in  3.00 seconds = 141.90 MB/sec

/dev/sdi:
 Timing cached reads:   2538 MB in  2.00 seconds = 1268.57 MB/sec
 Timing buffered disk reads:  402 MB in  3.01 seconds = 133.69 MB/sec

Hừm. Tôi ghét chia cấu trúc đĩa trên các phần cứng khác nhau bởi vì nó làm cho những thứ như thế này rất khó để khắc phục sự cố. Thông thường tôi khuyên bạn nên chạy một cái gì đó giống như bonnie++trên từng mảng riêng biệt để bạn có điểm chuẩn tốc độ cơ bản cho chúng. Tôi không có nhiều kinh nghiệm với LVM nên hiện tại tôi không chắc việc tách chúng ra là một lựa chọn.
Oli

Mảng bên ngoài thực sự không phải là một vấn đề. Không có khối trên đó. Đó là hiệu suất đĩa bên trong Tôi hy vọng sẽ có được âm thanh.
popey

Câu trả lời:


3

Thật không may, bộ đệm sọc chỉ áp dụng cho RAID5 và 6 - không có tương đương với RAID 0/1/10.

Hiệu suất của các ổ đĩa riêng lẻ của bạn (theo hdparm) sẽ ổn - tất cả chúng đều hoạt động như mong đợi cho các ổ đĩa của lớp đó.

Đề nghị của tôi:

  1. Kiểm tra xem AHCI có được bật trong BIOS không và các ổ đĩa được cài đặt bên trong không sử dụng chế độ IDE kế thừa. Có một BIOS bị hack cho MicroServer có sẵn cũng cho phép AHCI cho cổng eSATA (xem liên kết này để biết thêm thông tin) - có thể đáng để điều tra cho các ổ đĩa trong vỏ ngoài, mặc dù chúng vẫn bị giới hạn bởi phía sau số nhân cổng.
  2. Kích hoạt NCQ cho tất cả các ổ đĩa và xem nếu điều đó tạo ra sự khác biệt (có thể, nó có thể không).
  3. Đảm bảo rằng các cài đặt hệ thống tập tin được tối ưu hóa (gắn noatime, gật đầu). Bạn cũng có thể vô hiệu hóa các rào cản ghi , nhưng điều đó có thể quá rủi ro.
  4. Kiểm tra xem bạn có thấy bất kỳ lợi ích nào từ việc chuyển đổi lịch trình I / O không (noop có thể giúp ở đây).
  5. Điều chỉnh bộ đệm đọc trước cho cả thiết bị md và LVM: blockdev --setra <size> /dev/md1ví dụ (trong đó <size>là các cung 512 byte). Điều đó sẽ chỉ giúp đọc mặc dù.

Hai thứ khác có thể ảnh hưởng đến hiệu suất là căn chỉnh phân vùng và tham số tạo hệ thống tệp (sải chân, v.v.) nhưng khi bạn đang sử dụng các công cụ hiện đại, đó không phải là vấn đề.


Đã thêm thời gian đĩa hdparm và đã chỉnh sửa fstab (và được kể lại) để sử dụng noatime và gật đầu. Sẽ để nó 24 giờ như thế.
popey
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.