Tolok ukur volume EBS - Amazon EBS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tolok ukur volume EBS

Anda dapat menguji performa volume Amazon EBS dengan menyimulasikan beban kerja I/O. Prosesnya adalah sebagai berikut:

  1. Luncurkan instans yang dioptimalkan EBS.

  2. Buat volume EBS baru.

  3. Lampirkan volume ke instans yang dioptimalkan EBS.

  4. Konfigurasikan dan pasang perangkat blok.

  5. Pasang alat untuk menetapkan tolok ukur performa I/O.

  6. Tolok ukur performa I/O dari volume Anda.

  7. Hapus volume Anda dan akhiri instans Anda sehingga Anda tidak terus membebankan biaya.

penting

Beberapa prosedur mengakibatkan penghancuran data yang ada pada volume EBS yang menjadi patokan. Prosedur tolok ukur dimaksudkan untuk digunakan pada volume yang dibuat khusus untuk tujuan pengujian, bukan volume produksi.

Siapkan instans Anda

Untuk mendapatkan performa optimal dari volume EBS, kami menyarankan agar Anda menggunakan instans yang dioptimalkan dengan EBS. Instans yang mengoptimalkan EBS memberikan throughput khusus di antara Amazon EC2 dan Amazon EBS, dengan instans. Instans yang dioptimalkan untuk EBS memberikan bandwidth khusus antara Amazon EC2 dan Amazon EBS, spesifikasi tergantung pada tipe instans.

Untuk membuat instans yang dioptimalkan EBS, pilih Luncurkan sebagai instans yang dioptimalkan EBS saat meluncurkan instans menggunakan konsol Amazon EC2, atau tentukan --ebs-optimized saat menggunakan baris perintah. Pastikan Anda memilih jenis instance yang mendukung opsi ini.

Menyiapkan volume SSD IOPS yang Tersedia atau SSD Tujuan Umum

Untuk menciptakan volume SSD IOPS yang Tersedia (io1 dan io2) atau SSD Tujuan Umum (gp2 dan gp3) menggunakan konsol Amazon EC2, untuk Tipe volume, pilih SSD IOPS yang Tersedia (io1), SSD IOPS yang Tersedia (io2), SSD Tujuan Umum (gp2), atau SSD Tujuan Umum (gp3). Di baris perintah, tentukanio1, io2, gp2, atau gp3 untuk parameter --volume-type. Untuk volume io1, io2, dan gp3, tentukan jumlah operasi I/O per detik (IOPS) untuk parameter --iops. Untuk informasi lebih lanjut, lihat Tipe volume Amazon EBS dan Buat volume Amazon EBS.

(Hanya instance Linux) Untuk contoh pengujian, kami menyarankan Anda membuat array RAID 0 dengan 6 volume, yang menawarkan kinerja tingkat tinggi. Karena Anda dikenai biaya berdasarkan gigabita yang disediakan (dan jumlah IOPS yang Tersedia untuk volume io1, io2, dan gp3), bukan jumlah volume, tidak ada biaya tambahan untuk membuat beberapa volume yang lebih kecil dan menggunakannya untuk membuat set stripe. Jika Anda menggunakan Oracle Orion untuk mengukur volume Anda, Oracle Orion dapat melakukan simulasi striping dengan cara yang sama seperti yang dilakukan Oracle ASM, jadi sebaiknya biarkan Orion yang melakukan striping. Jika Anda menggunakan alat tolok ukur yang berbeda, Anda perlu membuat volume sendiri.

Untuk informasi selengkapnya tentang cara membuat array RAID 0, lihatBuat array RAID 0.

Siapkan volume HDD Throughput Dioptimalkan (st1) atau Cold HDD (sc1)

Untuk membuat volume st1, pilih HDD Throughput Dioptimalkan saat membuat volume menggunakan konsol Amazon EC2, atau tentukan --type st1 saat menggunakan baris perintah. Untuk membuat volume sc1, pilih HDD Throughput Dioptimalkan saat membuat volume menggunakan konsol Amazon EC2, atau tentukan --type sc1 saat menggunakan baris perintah. Untuk informasi tentang pembuatan volume EBS, lihat Buat volume Amazon EBS. Untuk informasi tentang memasang volume ini ke instans Anda, lihat Lampirkan volume Amazon EBS ke instans.

(Hanya instance Linux) AWS menyediakan template JSON untuk digunakan AWS CloudFormation yang menyederhanakan prosedur penyiapan ini. Akses template dan simpan sebagai file JSON. AWS CloudFormation memungkinkan Anda mengonfigurasi kunci SSH Anda sendiri dan menawarkan cara yang lebih mudah untuk mengatur lingkungan pengujian kinerja untuk mengevaluasi st1 volume. Templat membuat instans generasi saat ini dan 2 TiB volume st1, dan memasangkan volume ke instans pada /dev/xvdf.

(Hanya instance Linux) Untuk membuat volume HDD menggunakan template
  1. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

  2. Pilih Buat tumpukan.

  3. Pilih Unggah Templat ke Amazon S3 dan pilih templat JSON yang Anda dapatkan sebelumnya.

  4. Berikan nama tumpukan Anda seperti “ebs-perf-testing”, dan pilih tipe instans (defaultnya adalah r3.8xlarge) dan kunci SSH.

  5. Pilih Selanjutnya dua kali, lalu pilih Buat Tumpukan.

  6. Setelah status untuk tumpukan baru Anda berpindah dari CREATE_IN_PROGRESS ke COMPLETE, pilih Output untuk mendapatkan entri DNS publik untuk instans baru Anda, yang akan memiliki volume st1 2 TiB yang terlampir padanya.

  7. Terhubung menggunakan SSH ke tumpukan baru Anda sebagai pengguna ec2-user, dengan nama host yang diperoleh dari entri DNS di langkah sebelumnya.

  8. Lanjut ke Pasang alat tolok ukur.

Pasang alat tolok ukur

Tabel berikut mencantumkan beberapa alat yang mungkin dapat Anda gunakan untuk mengukur kinerja volume EBS.

Alat Deskripsi

fio

Untuk tolok ukur performa I/O. (Perhatikan bahwa fio memiliki ketergantungan pada libaio-devel.)

Untuk menginstal fio di Amazon Linux, jalankan perintah berikut:

[ec2-user ~]$ sudo yum install -y fio

Untuk memasang fio di Ubuntu, jalankan perintah berikut:

sudo apt-get install -y fio

Alat Kalibrasi Orion Oracle

Untuk mengalibrasi performa sistem penyimpanan I/O yang akan digunakan dalam basis data Oracle.

Alat Deskripsi
DiskSpd

DiskSpd adalah alat kinerja penyimpanan dari tim teknik Windows, Windows Server, dan Cloud Server Infrastructure di Microsoft. Tersedia untuk diunduh di https://github.com/Microsoft/diskspd/releases.

Setelah Anda mengunduh file diskspd.exe yang dapat dijalankan, buka command promt dengan wewenang administratif (dengan memilih "Run as Administrator"), dan kemudian navigasi ke direktori tempat Anda menyalin file diskspd.exe.

Salin yang diinginkan file diskspd.exe yang dapat dieksekusi dari folder executable yang sesuai (amd64fre, armfre atau x86fre) ke jalur yang singkat dan sederhana seperti C:\DiskSpd. Dalam kebanyakan kasus, Anda akan menginginkan versi 64-bit DiskSpd dari amd64fre folder.

Kode sumber untuk DiskSpd di-host GitHub di: https://github.com/Microsoft/diskspd.

CrystalDiskTandai

CrystalDiskMark adalah perangkat lunak benchmark disk sederhana. Tersedia untuk diunduh di https://crystalmark.info/en/software/crystaldiskmark/.

Alat tolok ukur ini mendukung berbagai macam parameter uji. Anda harus menggunakan perintah yang akan mendukung oleh perkiraan beban kerja volume Anda. Perintah yang diberikan di bawah ini dimaksudkan sebagai contoh untuk membantu Anda memulai.

Pilih panjang antrean volume

Memilih panjang antrean volume terbaik berdasarkan beban kerja dan tipe volume Anda.

Panjang antrean pada volume yang didukung SSD

Untuk menentukan panjang antrean yang optimal untuk beban kerja Anda pada volume yang didukung SSD, kami menyarankan Anda menargetkan panjang antrean 1 untuk setiap 1000 IOPS yang disediakan (acuan untuk volume SSD Tujuan Umum dan jumlah yang disediakan untuk volume SSD IOPS yang Tersedia). Kemudian, Anda dapat memantau performa aplikasi Anda dan menyesuaikan nilai tersebut berdasarkan kebutuhan aplikasi Anda.

Peningkatan panjang antrean akan bermanfaat hingga Anda mencapai IOPS yang tersedia , throughput, atau panjang antrean sistem optimal, yang saat ini ditetapkan ke 32. Misalnya, volume dengan 3.000 IOPS yang Tersedia harus menargetkan panjang antrean 3. Anda harus bereksperimen mengatur nilai-nilai ini ke atas atau ke bawah untuk melihat apa yang terbaik untuk aplikasi Anda.

Panjang antrean pada volume yang didukung HDD

Untuk menentukan panjang antrean yang optimal untuk beban kerja Anda pada volume yang didukung HDD, kami sarankan agar Anda menargetkan panjang antrean minimal 4 sambil melakukan I/O berurutan 1MiB. Kemudian, Anda dapat memantau performa aplikasi Anda dan menyesuaikan nilai tersebut berdasarkan kebutuhan aplikasi Anda. Misalnya, volume st1 2 TiB dengan throughput lonjakan sebesar 500 MiB/dtk dan IOPS sebesar 500 harus menargetkan panjang antrean 4, 8, atau 16 saat menjalankan I/O 1.024 KiB, 512 KiB, atau 256 KiB secara berurutan. Anda harus bereksperimen mengatur nilai-nilai ini ke atas atau ke bawah untuk melihat apa yang terbaik untuk aplikasi Anda.

Nonaktifkan Status C

Sebelum menjalankan benchmarking, Anda harus menonaktifkan prosesor C-states. Inti yang sementara diam di CPU yang mendukung dapat memasuki status C untuk menghemat daya. Ketika inti dipanggil untuk melanjutkan pemrosesan, beberapa waktu berlalu sampai inti beroperasi GApenuh. Latensi ini dapat mengganggu rutinitas tolok ukur prosesor . Untuk informasi selengkapnya tentang status C dan tipe instans EC2 mana yang mendukungnya, lihat Kontrol status processor untuk Instans EC2 Anda.

Anda dapat menonaktifkan status C di Amazon Linux, RHEL, dan CentOS sebagai berikut:

  1. Dapatkan jumlah C-state.

    $ C:\> cpupower idle-info | grep "Number of idle states:"
  2. Nonaktifkan status C dari c1 ke cN. Idealnya, inti harus berada dalam keadaan c0.

    $ C:\> for i in `seq 1 $((N-1))`; do cpupower idle-set -d $i; done

Anda dapat menonaktifkan C-states pada Windows sebagai berikut:

  1. Masuk PowerShell, dapatkan skema daya aktif saat ini.

    $current_scheme = powercfg /getactivescheme
  2. Dapatkan skema daya GUID.

    (Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
  3. Dapatkan pengaturan daya GUID.

    (Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
  4. Dapatkan pengaturan daya subgrup GUID.

    (Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID
  5. Nonaktifkan status C dengan mengatur nilai indeks ke 1. Nilai 0 menunjukkan bahwa status-C dinonaktifkan.

    powercfg /setacvalueindex <power_scheme_guid> <power_setting_subgroup_guid> <power_setting_guid> 1
  6. Tetapkan skema aktif untuk memastikan pengaturan disimpan.

    powercfg /setactive <power_scheme_guid>

Lakukan benchmarking

Prosedur berikut menjelaskan perintah tolok ukur untuk berbagai tipe volume EBS.

Jalankan perintah berikut pada instans EBS yang dioptimalkan yang memasang volume EBS. Jika volume EBS dibuat dari snapshot, pastikan untuksebelum menetapkan tolok ukur. Untuk informasi selengkapnya, lihat Inisialisasi volume Amazon EBS.

Setelah selesai menguji volume, lihat topik berikut untuk bantuan pembersihan: Menghapus volume Amazon EBS dan Hentikan instans Anda.

Tolok Ukur Volume SSD IOPS yang Tersedia dan SSD Tujuan Umum

Jalankan fio pada array RAID 0 yang Anda buat.

Perintah berikut melakukan operasiacak 16 KB.

[ec2-user ~]$ sudo fio --directory=/mnt/p_iops_vol0 --ioengine=psync --name fio_test_file --direct=1 --rw=randwrite --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap

Perintah berikut melakukan operasi baca acak 16 KB.

[ec2-user ~]$ sudo fio --directory=/mnt/p_iops_vol0 --name fio_test_file --direct=1 --rw=randread --bs=16k --size=1G --numjobs=16 --time_based --runtime=180 --group_reporting --norandommap

Untuk informasi selengkapnya tentang penafsiran hasil, lihat tutorial ini: Memeriksa performa IO disk dengan fio.

Jalankan DiskSpd pada volume yang Anda buat.

Perintah berikut akan menjalankan uji I/O acak 30 detik menggunakan file uji 20 GB yang berada di drive C:, 25% dan 75% rasio baca, dan 8K ukuran blok. Ini akan menggunakan delapan thread bekerja, masing-masing dengan empat I/O luar biasa, dan benih nilai entropi tulis 1GB. Hasil uji akan disimpan ke file teks yang disebut DiskSpeedResults.txt. Parameter ini mensimulasikan beban kerja SQL Server OLTP.

diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt

Untuk informasi selengkapnya tentang penafsiran hasil, lihat tutorial ini: Memeriksa performa IO disk dengan fio.

Benchmark st1 dan sc1 volume (instance Linux)

Jalankan fio pada volume st1 atau sc1.

catatan

Sebelum menjalankan pengujian ini, atur I/O berpenyangga pada instans Anda seperti yang dijelaskan di Tingkatkan read-ahead untuk throughput tinggi, beban kerja read-heavy pada dan (hanya instance Linux) st1 sc1.

Perintah berikut melakukan operasi pembacaan berurutan 1 MiB terhadap perangkat blok st1 terlampir (misalnya, /dev/xvdf):

[ec2-user ~]$ sudo fio --filename=/dev/<device> --direct=1 --rw=read --randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180 --name=fio_direct_read_test

Perintah berikut melakukan operasi pembacaan berurutan 1 MiB terhadap perangkat blok st1 yang terlampir:

[ec2-user ~]$ sudo fio --filename=/dev/<device> --direct=1 --rw=write --randrepeat=0 --ioengine=libaio --bs=1024k --iodepth=8 --time_based=1 --runtime=180 --name=fio_direct_write_test

Beberapa beban kerja melakukan campuran antara baca berurutan danberurutan ke bagian perangkat blok yang berbeda. Untuk mengukur beban kerja tersebut, kami sarankan agar Anda menggunakan pekerjaan fio untuk membaca serta menggunakan opsi fio offset_increment untuk menargetkan lokasi perangkat blok yang berbeda untuk setiap pekerjaan.

Menjalankan beban kerja ini adalah yang lebih rumit dibandingkan dengan beban kerja baca-urut atau tulis-urut. Gunakan editor teks untuk membuat file pekerjaan fio, yang disebut fio_rw_mix.cfg dalam contoh ini, yang berisi hal berikut:

[global] clocksource=clock_gettime randrepeat=0 runtime=180 [sequential-write] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device> do_verify=0 rw=write rwmixread=0 rwmixwrite=100 [sequential-read] bs=1M ioengine=libaio direct=1 iodepth=8 filename=/dev/<device> do_verify=0 rw=read rwmixread=100 rwmixwrite=0 offset=100g

Kemudian jalankan perintah berikut:

[ec2-user ~]$ sudo fio fio_rw_mix.cfg

Untuk informasi selengkapnya tentang penafsiran hasil, lihat tutorial ini: Memeriksa performa IO disk dengan fio.

Banyak pekerjaan fio untuk I/O langsung, meskipun menggunakan operasi baca atau tulis berurutan, dapat menghasilkan throughput yang lebih rendah dari yang diharapkan untuk volume st1 dan sc1. Kami sarankan Anda menggunakan satu pekerjaan langsung I/O dan gunakan parameter iodepth untuk mengontrol jumlah operasi I/O bersamaan.