Pendahuluan: Saya membuang basis data 5,2 GB menggunakan perintah mysqldump. Saya melakukan ini pada server virtual kurang bertenaga dengan hanya 512 MB memori. Butuh sekitar satu jam. Saya sekarang memuat ulang basis data itu pada mesin desktop saya yang memiliki CPU dual core dan memori 2 GB. Muat ulang pada jam ke-9 dan saya tidak tahu apakah itu hampir selesai. Saya telah memuat ulang basis data ini pada mesin yang sama sekitar setahun yang lalu dan hanya butuh dua jam. Perbedaan antara dulu dan sekarang adalah saya mengganti hard disk ATA tunggal saya dengan dua disk SATA dalam mode raid1. Saya tahu bahwa raid1 akan menulis lebih lambat (secara teori) tapi jelas tidak lebih lambat 4,5x! Jadi saya pecah iostat dan saya menjadi lebih bingung.
$ sudo iostat
Linux 2.6.30-2-amd64 (lukahn) 12/12/2009 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.13 0.00 1.94 27.96 0.00 62.97
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 144.02 198.41 11139.44 9322418 523399320
sdb 143.78 165.59 11137.39 7780516 523303000
hda 0.01 0.05 0.00 2492 0
md0 0.66 6.44 0.71 302538 33496
md1 7.32 67.02 7.51 3148938 352960
md2 6.08 240.02 18.95 11277610 890584
md3 1389.80 46.85 11106.55 2201410 521853640
md4 0.41 3.03 0.21 142322 9824
sda dan sdb adalah drive SATA asli yang mendukung perangkat md, seperti yang Anda lihat di / proc / mdstat:
$ cat /proc/mdstat
Personalities : [raid0] [raid1]
md4 : active raid0 sda6[0] sdb6[1]
48821248 blocks 64k chunks
md3 : active raid1 sda5[0] sdb5[1]
48829440 blocks [2/2] [UU]
md2 : active raid1 sda4[0] sdb4[1]
1318358080 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
48829440 blocks [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
9767424 blocks [2/2] [UU]
File .sql yang saya reload dari berada di partisi / home di md2 dan partisi / var ada di md3. Saya berasumsi bahwa blok yang ditulis ke md3 jauh lebih tinggi daripada blok yang dibaca dari md2 karena indeks regenerasi MySql. Namun pertanyaan besar yang saya miliki adalah bagaimana mengukur tps untuk md3 menjadi jauh lebih tinggi daripada ukuran tps untuk sda dan sdb?
Opsi -m untuk iostat menunjukkan jumlah data yang sama (5,55 MB / s) yang ditulis ke disk untuk md3 dan sda / sdb:
$ sudo iostat -m
Linux 2.6.30-2-amd64 (lukahn) 12/12/2009 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
7.39 0.00 2.00 28.16 0.00 62.44
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 145.16 0.10 5.55 4976 267768
sdb 144.90 0.09 5.55 4143 267716
hda 0.01 0.00 0.00 1 0
md0 0.66 0.00 0.00 154 16
md1 7.18 0.03 0.00 1580 172
md2 6.19 0.13 0.01 6153 443
md3 1418.41 0.02 5.53 1146 266994
md4 0.40 0.00 0.00 69 5
Halaman manual iostat mengatakan:
tps
Tunjukkan jumlah transfer per detik yang dikeluarkan ke perangkat. Transfer adalah permintaan I / O ke perangkat. Beberapa permintaan logis dapat digabungkan menjadi satu permintaan I / O ke perangkat. Transfer berukuran tidak pasti.
Saya tidak berharap mereka persis sama, tetapi pasti tidak berbeda 864%! Apakah ini tanda kemacetan karena kesalahan konfigurasi perangkat md saya atau saya hanya khawatir tentang apa-apa?