Apa itu Pengujian Penyimpanan? Jenis-jenisnya, Concepts & Contoh

โšก Ringkasan Cerdas

Pengujian penyimpanan memverifikasi bahwa aplikasi menulis datanya ke direktori yang benar dan memiliki ruang disk yang cukup untuk menghindari penghentian yang tidak terduga, sekaligus mengukur seberapa cepat penyimpanan yang mendasarinya merespons di bawah beban realistis.

  • ๐Ÿ’พ Disebut juga: Pengujian performa penyimpanan, karena kecepatan sama pentingnya dengan penempatan yang tepat.
  • โš ๏ธ Mengapa hal ini penting: Penyimpanan yang lambat menghasilkan waktu respons yang lambat, kueri yang berjalan lama, dan ketersediaan aplikasi yang lebih rendah.
  • ๐Ÿงฉ Tiga jenis: Pengujian aplikasi, simulasi aplikasi, dan benchmarking, masing-masing dengan aktivitasnya sendiri.
  • ๐Ÿ“ Metrik inti: IOPS, latensi, throughput, dan kedalaman antrian, selalu dibaca bersama-sama, bukan secara terpisah.
  • ๐Ÿงช Cara kerjanya: Tetapkan tujuan, tentukan ukuran kumpulan data, pilih kombinasi baca/tulis yang realistis, lalu tingkatkan beban secara bertahap.
  • ๏ธ Perkakas: Generator I/O sintetis menghasilkan angka yang berulang yang tidak mungkin dihasilkan oleh perintah penyalinan berkas.
  • ๐Ÿšซ Kesalahan Umum: Memantau server yang salah, lewatiping Pembersihan cache dan mengabaikan penggunaan prosesor.

Tutorial pengujian penyimpanan yang membahas jenis, konsep, dan kesalahan umum.

Apa itu Pengujian Penyimpanan?

Pengujian penyimpanan adalah jenis pengujian perangkat lunak yang digunakan untuk memverifikasi apakah aplikasi perangkat lunak yang diuji menyimpan data yang relevan ke dalam direktori yang sesuai, dan apakah aplikasi tersebut memiliki ruang yang cukup untuk mencegah penghentian yang tidak terduga karena ruang disk yang tidak mencukupi. Ini juga disebut pengujian kinerja penyimpanan.

Teknik ini berada di sisi non-fungsional dari disiplin ilmu tersebut: seperti bentuk-bentuk lainnya pengujian non-fungsional, hal itu tidak mengatakan apa pun tentang apakah suatu fitur menghasilkan jawaban yang benar, dan sepenuhnya tentang apakah sistem dapat terus menghasilkan jawaban seiring bertambahnya volume data dan tekanan I/O.

Mengapa Pengujian Penyimpanan?

Penyimpanan adalah lapisan paling lambat yang diakses sebagian besar aplikasi, sehingga kelemahan di sana akan terlihat di mana-mana. Empat alasan membenarkan siklus pengujian khusus.

  • Penyimpanan yang lambat berarti waktu respons yang lambat, kueri yang berjalan lama, dan ketersediaan aplikasi yang lebih rendah.
  • Penyimpanan yang lambat merupakan beban tambahan bagi pemeliharaan infrastruktur server.
  • Ada baiknya untuk mengetahui batasan penyimpanan praktis sistem sebelum digunakan.
  • Hal ini membantu untuk memahami bagaimana sistem bereaksi ketika perangkat keras diganti atau ditingkatkan.

Diagram di bawah ini menempatkan pengujian penyimpanan dalam konteks tersebut โ€” aplikasi, sistem file, dan perangkat fisik semuanya berada pada jalur yang sama, dan penundaan di mana pun pada jalur tersebut akan memengaruhi pengguna.

Gambaran umum pengujian penyimpanan yang menunjukkan aplikasi menulis data melalui sistem file ke perangkat penyimpanan.

Jenis Pengujian Penyimpanan

Tiga pendekatan digunakan, dan perbedaan utamanya terletak pada seberapa mirip beban kerja dengan aplikasi sebenarnya.

  • Pengujian Aplikasi: Pengujian aplikasi dengan contoh kueri dalam lingkungan yang menyerupai lingkungan produksi.
  • Simulasi Aplikasi: Melakukan pengujian menggunakan perangkat lunak standar yang berperilaku serupa dengan aplikasi target.
  • Benchmarking: Melakukan pengujian menggunakan perangkat lunak benchmarking standar yang menghasilkan beban kerja sintetis yang dapat diulang.

Yang pertama memberikan hasil yang paling realistis dan paling tidak portabel; yang ketiga memberikan angka yang dapat dibandingkan di berbagai perangkat dan vendor, tetapi tidak banyak menjelaskan bagaimana aplikasi itu sendiri akan berperilaku.

Pengujian Umum Concepts Terlibat Selama Pengujian Penyimpanan

Masing-masing dari ketiga tipe tersebut dipetakan ke serangkaian aktivitas yang berbeda, seperti yang dirangkum di bawah ini.

Jenis Pengujian Penyimpanan Contoh aktivitas pengujian penyimpanan umum
Pengujian Aplikasi Bandingkan waktu respons OLTP
Bandingkan waktu berjalan batch
Bandingkan kecepatan streaming berkelanjutan
Simulasi Aplikasi Uji IOPS penyimpanan puncak untuk database
Menguji throughput penyimpanan puncak untuk lingkungan streaming data
Uji latensi penyimpanan untuk pengiriman pesan atau aplikasi single-threaded lainnya.
benchmarking Menguji kerusakan data

Metrik Utama dalam Pengujian Penyimpanan

Hasil penyimpanan dilaporkan melalui sejumlah kecil angka. Membaca salah satu angka saja adalah cara tercepat untuk mencapai kesimpulan yang salah, karena angka-angka tersebut saling bertentangan.

metrik Apa yang diukur Di saat yang paling penting
IOPS Operasi baca dan tulis diselesaikan per detik, terlepas dari ukurannya. Basis data transaksional dan penulisan acak kecil
Latensi Waktu antara dimulainya dan selesainya satu operasi I/O Pengiriman pesan dan jalur aplikasi berutas tunggal
Throughput Volume data yang dipindahkan per detik, biasanya dalam MB/s. Eksekusi batch, pencadangan, dan beban kerja streaming
Kedalaman antrian Jumlah permintaan yang belum terselesaikan yang diterbitkan secara bersamaan Setiap proses yang harus mencerminkan konkurensi nyata.

Kedalaman antrian perlu mendapat perhatian khusus. Mengirimkan satu permintaan pada satu waktu menghasilkan latensi permintaan tunggal yang akurat tetapi angka IOPS dan throughput yang rendah secara artifisial, itulah sebabnya perangkat dapat terlihat lambat dalam pengujian dan cepat dalam produksi, atau sebaliknya.

Cara Melakukan Pengujian Penyimpanan

Keandalan uji penyimpanan hanya bergantung pada kondisi pelaksanaannya. Urutan langkah-langkah di bawah ini memastikan hasil yang dapat diulang.

  • Langkah 1) Tetapkan tujuan. Tentukan apakah pengujian tersebut bertujuan untuk membuktikan kesiapan basis data, menemukan batas throughput, atau membandingkan dua perangkat. Setiap tujuan menyiratkan beban kerja yang berbeda, dan mencampurnya menghasilkan angka yang tidak dapat ditindaklanjuti oleh siapa pun.
  • Langkah 2) Tentukan ukuran set data secara realistis. Working set yang cukup kecil untuk muat di dalam cache mengukur ukuran cache, bukan penyimpanan. Sesuaikan dengan volume data produksi, atau setidaknya lampaui ukuran cache dengan selisih yang besar.
  • Langkah 3) Pilih kombinasi baca/tulis dan pola. Akses acak dan berurutan berperilaku sangat berbeda pada perangkat yang sama, begitu pula dengan campuran baca-tulis 70/30 dan burst hanya tulis. Ambil campuran tersebut dari pemantauan produksi, bukan dari pengaturan default.
  • Langkah 4) Atur kedalaman antrian dan jumlah thread. Parameter-parameter ini mengontrol seberapa banyak konkurensi yang mencapai perangkat, jadi catatlah parameter ini bersama setiap hasil โ€” angka yang dikutip tanpa parameter ini tidak dapat direproduksi.
  • Langkah 5) Bersihkan cache dan lakukan pemanasan. Hapus cache server dan perangkat di antara setiap proses, lalu buang interval pertama sehingga angka kondisi stabil yang dibandingkan, bukan angka saat pertama kali diakses.
  • Langkah 6) Berlari cukup lama. Pencatatan data singkat menyembunyikan "write-cliff" yang muncul setelah SSD kehabisan buffer tulis. Pencatatan data berkelanjutan justru memperlihatkannya.
  • Langkah 7) Pantau seluruh tumpukan. Catat penggunaan prosesor, memori, dan jaringan bersamaan dengan penghitung penyimpanan, sehingga hambatan di tempat lain tidak disalahartikan sebagai keterbatasan penyimpanan.
  • Langkah 8) Ulangi dan bandingkan. Jalankan konfigurasi yang sama lebih dari sekali dan simpan log-nya; perbedaan performa antar build hanya terlihat jika dibandingkan dengan baseline yang tersimpan.

Karena disiplin yang sama berlaku untuk setiap pengukuran yang digerakkan oleh beban, pengujian ini biasanya direncanakan bersamaan dengan pengujian kinerja dan dijadwalkan sebelum kandidat rilis dibekukan.

Alat Pengujian Penyimpanan

Peralatan terbagi menjadi dua kelompok, dan sebagian besar tim membutuhkan keduanya.

  • Generator I/O sintetis. Utilitas seperti fioIometer dan sysbench mengeluarkan beban kerja yang dijelaskan secara tepat โ€” ukuran blok, campuran baca/tulis, kedalaman antrian, dan durasi semuanya dideklarasikan, sehingga proses dapat diulang persis pada perangkat lain.
  • Alat pemuatan tingkat aplikasi. Pengemudi seperti JMeter Latih aplikasi itu sendiri, sehingga penyimpanan melihat pola akses yang sama seperti yang dibuat oleh pengguna sebenarnya, termasuk rencana kueri dan perilaku indeks yang tidak dapat direproduksi oleh alat sintetis.

OperaPenghitung sistem ting melengkapi gambaran tersebut. Apa pun alat yang menghasilkan beban, angka penyimpanan harus dibaca bersamaan dengan penghitung prosesor, memori, dan jaringan โ€” beberapa teknik pengujian penyimpanan, termasuk pengujian benchmark ke pengujian volume, bergantung pada pandangan full-stack tersebut untuk menginterpretasikan hasil dengan benar.

Kesalahan Saat Melakukan Pengujian Penyimpanan

Sebagian besar hasil penyimpanan tidak valid trackembali ke sejumlah kecil kesalahan yang dapat dihindari.

  • Memantau kinerja server yang salah, sehingga angka-angka tersebut menggambarkan mesin yang tidak sedang diuji.
  • Membandingkan perangkat penyimpanan tanpa membersihkan cache server terlebih dahulu, yang mengukur memori dan bukan disk.
  • Lupa memantau pemanfaatan prosesor selama pengujian, yang menyembunyikan hambatan yang terkait dengan prosesor di balik gejala yang berbentuk penyimpanan.
  • Menguji kinerja penyimpanan dengan perintah penyalinan file, yang bersifat single-threaded, dibantu cache, dan tidak dapat diulang.

Pertanyaan Umum Demo Slot

Pengujian volume Pengujian penyimpanan mengukur jumlah data yang disimpan oleh aplikasi dan mengamati penurunan kinerjanya. Pengujian penyimpanan menargetkan lapisan perangkat di bawahnya, mengukur seberapa cepat data tersebut dapat ditulis dan dibaca kembali.

Setiap lokasi tempat aplikasi menulis: direktori data, folder log dan sementara, target unggahan, dan jalur arsip. Masing-masing perlu diperiksa untuk memastikan bahwa file masuk ke tempat yang tepat dan ruang kosong dilaporkan dengan benar.

Metrik tetap sama, tetapi batas IOPS yang dialokasikan, kredit burst, dan noise neighbour ditambahkan. Jalankan cukup lama hingga kredit burst habis, jika tidak, angka yang terukur mencerminkan alokasi sementara dan bukan kondisi stabil.

Model pembelajaran mesin menetapkan kurva IOPS dan latensi normal sebagai acuan, kemudian menandai proses yang menyimpang sebelum ambang batas terlampaui. Model yang sama memprediksi pertumbuhan kapasitas, sehingga kehabisan disk diprediksi daripada ditemukan di lingkungan produksi.

Kopilot GitHub Membuat draf file pekerjaan, skrip pembersihan cache, dan skrip penguraian hasil dengan cepat. Penguji tetap menyediakan ukuran blok, kedalaman antrian, dan durasi, karena informasi tersebut berasal dari pemantauan produksi, bukan dari templat.

Itu adalah kasus uji yang valid, bukan suatu kebetulan. Aplikasi seharusnya memberikan peringatan, menurunkan kinerja secara bertahap, dan mencatat kondisi tersebut daripada langsung berhenti. Pemulihan dari kondisi disk penuh adalah bagian dari pengujian pemulihan.

Biasanya, status cache, kedalaman antrian, atau panjang eksekusi berbeda di antara keduanya. Kondisi perangkat juga penting โ€” SSD yang baru diformat menulis lebih cepat daripada SSD yang telah terisi dan ditulis ulang beberapa kali.

Penguji kinerja biasanya menjalankan pengujian ini, dengan administrator infrastruktur atau basis data menyediakan konfigurasi perangkat dan pola akses produksi. Hasilnya hanya dapat dipertanggungjawabkan jika kedua belah pihak sepakat bahwa beban kerja tersebut realistis.

Ringkaslah postingan ini dengan: