Throughput apa yang harus saya harapkan dengan MPIO?

12

Dell PowerEdge 2950 dengan dua NIC 1 Gbps pergi ke dua port 1 Gbps pada sebuah saklar yang kemudian pergi ke NetApp dengan empat NIC 1 Gbps yang hadir sebagai satu antarmuka virtual. 24 drive, 7200k SATA, NetApp RAID-DP. Saya telah memetakan setiap host NIC ke NetApp menggunakan MPIO di inisiator Microsoft iSCSI. Pengujian dengan SQLIO throughput penulisan saya tampaknya masuk akal sekitar 200 MB, tetapi pembacaan saya lebih dekat ke 100 MB.

Tidakkah seharusnya bacaan saya mendekati 200 MB sama seperti tulisan saya? Apakah ini masalah konfigurasi atau ada masalah penyimpanan mendasar yang saya tidak mengerti?

masukkan deskripsi gambar di sini

Pembaruan: Berikut adalah IOPS untuk beban kerja acak. Bacaan itu masuk akal, meskipun, saya tidak yakin apa yang harus dibuat dari 20.000 untuk menulis. Cache SAN adalah 3,2 GB. Tes SQLIO menentang file 25 GB.

masukkan deskripsi gambar di sini

Henry Lee
sumber
3
Apa cache Anda pada perangkat NetApp? Apakah Anda memiliki admin SAN yang dapat menarik beberapa metrik untuk Anda? Kami memiliki NetApp dan mampu mengidentifikasi beberapa masalah dengan kombinasi laporan dan log peringatan. Pada akhirnya, situasi kami adalah kartu serat yang buruk, tetapi dukungan NetApp cukup membantu dalam membantu kami mengatasi masalah.
swasheck
2
Mungkin perlu melihat konfigurasi agregat dan volume Anda untuk memastikan disk Anda digunakan dengan benar (jangan ragu untuk memposting konfigurasi Anda, meskipun saya tidak yakin berapa banyak dari kita yang merupakan pakar NetApp). Adalah normal untuk menulis lebih cepat daripada membaca, karena menulis dapat di-cache pada filer sebelum mereka didorong ke disk, tetapi membaca harus mengenai disk kecuali mereka sudah ada dalam cache.
Nathan Jolly
2
@ Mrdenny Dari mana muncul gagasan "99% dari IO dalam blok 64k" ini? Bob Dorr menunjukkan sebaliknya , seperti halnya Wes Brown . Bahkan jika kita mengabaikan dua artikel komprehensif itu, tentu akal sehat menentukan bahwa Anda akan melihat 8K IO pada platform yang menggunakan ukuran halaman 8K.
Mark Storey-Smith
2
@ Mrdenny Punyaku harus dihancurkan, haruskah aku memanggil dukungan? Saya duduk di sini melihat file IO aktivitas data dengan monitor proses dan sementara ada 64K yang diharapkan dibaca dalam kelimpahan, ada banyak 8K lainnya membaca banyak dan tentu saja banyak menulis 8k. Aktivitas log seperti yang diharapkan, kelipatan 512 byte mulai dari penulisan 512 byte tunggal hingga 60k.
Mark Storey-Smith
2
@ MarkStorey-Smith Dalam pengalaman saya membaca 8k terjadi biasanya berkorelasi dengan fragmentasi. Juga dapat menunjukkan memori yang hilang, masa pakai halaman yang rendah karena pemindaian halaman penggusuran (mis. Sebagian besar masih dalam memori). Sistem yang disetel dengan baik akan menunjukkan 64k dibaca. Menulis tentu saja tergantung pada apa yang sebenarnya kotor.
Remus Rusanu

Jawaban:

7

Disk menulis sebenarnya akan ke memori (NVRAM) pada filer, untuk dibilas ke disk nanti - pada filer idle, ini akan sangat cepat, dan iops dari 20.000 cukup dipercaya (Anda akan melihat kecepatan yang sama dari kebanyakan SSD) .

Bacaan, di sisi lain, harus berasal dari disk kecuali mereka sudah ada dalam cache read the filer (yang, tidak seperti menulis, ada di memori volatile).

Sulit untuk menyematkan vendor penyimpanan pada iops untuk memutar disk, tetapi untuk drive 7200RPM, 80-120 iops cukup dapat dipercaya. Menimbang bahwa Anda mungkin kehilangan beberapa disk karena RAID-DP dan / atau suku cadang NetApp, 2.200 iops mendekati apa yang dapat Anda harapkan dari 22 disk yang masing-masing melakukan sekitar 100 iops.

Ini mungkin tidak menjelaskan kecepatan baca Anda (disk Anda mungkin tidak melakukan 2200 iops penuh saat Anda melakukan pembacaan berurutan), tetapi setidaknya dapat membantu menjelaskan kinerja penulisan Anda.

Nathan Jolly
sumber
Nathan terima kasih. Haruskah saya mengharapkan dua kali lipat throughput dengan dua NIC dan MPIO?
Henry Lee
1
Apakah Anda dapat memeriksa utilisasi pada filer Anda saat Anda menjalankan tes baca berurutan? Jika mencapai 100%, bottleneck Anda untuk mereka kemungkinan berada di filer (baik karena konfigurasi atau keterbatasan iops pada setiap disk) dan koneksi MPIO / ekstra MPIO tidak akan menambahkan apa pun. Throughput penulisan Anda mungkin meningkat lebih lanjut.
Nathan Jolly
5

Untuk anak cucu, setelah banyak coba-coba, kami menemukan cara untuk mendapatkan hasil yang diharapkan.

Seperti disebutkan di atas, NetApp memiliki satu antarmuka virtual yang didukung oleh empat NIC fisik. Tuan rumah memiliki dua NIC dan saya telah mengkonfigurasi MPIO melalui MS iSCSI Initiator sehingga ada jalur dari setiap NIC ke satu antarmuka virtual. Hasilnya adalah throughput di atas - menulis masuk akal mendekati 200 MB atau kecepatan dua NIC, tetapi membaca setengah atau kecepatan satu NIC.

Setelah diperiksa lebih dekat, orang SAN kami memperhatikan bahwa lalu lintas hanya mengalir melalui salah satu NIC fisik untuk dibaca. Saya tidak yakin apakah ada kesalahan konfigurasi di pihak kami, tetapi ada dua hal yang kami coba dan kami mendapatkan throughput kami. Salah satunya adalah mengubah dari satu antarmuka virtual yang didukung oleh empat NIC ke dua antarmuka virtual, masing-masing didukung oleh dua NIC. Kemudian memetakan satu host NIC ke satu antarmuka virtual. Hal lain yang kami coba adalah menggunakan "aliasing" di sisi SAN untuk menghadirkan beberapa antarmuka virtual. (Saya bukan orang SAN, jadi semoga saya mengatakan itu dengan benar.)

Kesimpulan saya adalah bahwa kami hanya memerlukan SAN untuk menghadirkan lebih dari satu antarmuka sehingga Pemrakarsa benar-benar melihat banyak jalur. Inilah throughput kami sekarang:

masukkan deskripsi gambar di sini

Henry Lee
sumber
mengapa tulisan yang lebih kecil lebih lambat sekarang?
Jack bilang coba topanswers.xyz
Tidak yakin, kami belum bisa mengetahuinya. Saya akan memposting kembali jika saya mengetahuinya.
Henry Lee