Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Benchmark volume Amazon EBS
Anda dapat menguji kinerja EBS volume Amazon dengan mensimulasikan beban kerja I/O. Prosesnya adalah sebagai berikut:
-
Luncurkan instance yang EBS dioptimalkan.
-
Buat EBS volume baru.
-
Lampirkan volume ke instance yang EBS dioptimalkan.
-
Konfigurasikan dan pasang perangkat blok.
-
Pasang alat untuk menetapkan tolok ukur performa I/O.
-
Tolok ukur performa I/O dari volume Anda.
-
Hapus volume Anda dan akhiri instans Anda sehingga Anda tidak terus membebankan biaya.
penting
Beberapa prosedur mengakibatkan penghancuran data yang ada pada EBS volume yang Anda benchmark. 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 EBS volume, sebaiknya gunakan instans yang EBS dioptimalkan. EBSInstans yang dioptimalkan memberikan throughput khusus antara Amazon dan EC2 AmazonEBS, dengan instance. EBSInstans yang dioptimalkan memberikan bandwidth khusus antara Amazon dan EC2 AmazonEBS, dengan spesifikasi tergantung pada jenis instans.
Untuk membuat instans EBS yang dioptimalkan, pilih Luncurkan sebagai instans yang EBS dioptimalkan saat meluncurkan instance menggunakan EC2 konsol Amazon, atau tentukan --ebs-optimized saat menggunakan baris perintah. Pastikan Anda memilih jenis instance yang mendukung opsi ini.
Mengatur volume yang Disediakan IOPS SSD atau Tujuan Umum SSD
Untuk membuat volume Provisioned IOPS SSD (io1
andio2
) atau General Purpose SSD (gp2
dangp3
) menggunakan EC2 konsol Amazon, untuk jenis Volume, pilih Provisioned IOPS SSD (io1), Provisioned (io2), General Purpose IOPSSSD(gp2), atau General Purpose SSD (gp3). SSD Di baris perintah, tentukanio1
, io2
, gp2
, atau gp3
untuk parameter --volume-type. Untukio1
,io2
, dan gp3
volume, tentukan jumlah operasi I/O per detik (IOPS) untuk --iops parameter. Untuk informasi selengkapnya, silakan lihat Jenis EBS volume Amazon dan Buat EBS volume Amazon.
(Hanya instance Linux) Untuk contoh pengujian, kami menyarankan Anda membuat array RAID 0 dengan 6 volume, yang menawarkan kinerja tingkat tinggi. Karena Anda dibebankan oleh gigabyte yang disediakan (dan jumlah yang disediakan IOPS 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 garis. Jika Anda menggunakan Oracle Orion untuk mengukur volume Anda, itu dapat mensimulasikan striping dengan cara yang sama seperti Oracle, jadi kami sarankan Anda membiarkan Orion ASM 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.
Mengatur volume Throughput Optimized HDD (st1
) atau Cold HDD (sc1
)
Untuk membuat st1
volume, pilih Throughput Optimized HDD saat membuat volume menggunakan EC2 konsol Amazon, atau tentukan --type st1
saat menggunakan baris perintah. Untuk membuat sc1
volume, pilih Dingin HDD saat membuat volume menggunakan EC2 konsol Amazon, atau tentukan --type sc1
saat menggunakan baris perintah. Untuk informasi tentang membuat EBS volume, lihatBuat EBS volume Amazon. Untuk informasi tentang memasang volume ini ke instans Anda, lihat Lampirkan EBS volume Amazon ke EC2 instans Amazon.
(Hanya instance Linux) AWS menyediakan JSON template untuk digunakan yang menyederhanakan AWS CloudFormation prosedur penyiapan ini. Akses templatest1
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 HDD volume menggunakan template
Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation
. -
Pilih Buat tumpukan.
-
Pilih Unggah Template ke Amazon S3 dan pilih JSON template yang sebelumnya Anda dapatkan.
-
Berikan tumpukan Anda nama seperti “ebs-perf-testing”, dan pilih jenis instance (defaultnya adalah r3.8xlarge) dan kunci. SSH
-
Pilih Selanjutnya dua kali, lalu pilih Buat Tumpukan.
-
Setelah status tumpukan baru Anda berpindah dari CREATE_IN_ PROGRESS ke COMPLETE, pilih Output untuk mendapatkan DNS entri publik untuk instance baru Anda, yang akan memiliki volume 2 TiB
st1
yang melekat padanya. -
Connect menggunakan SSH ke tumpukan baru Anda sebagai pengguna
ec2-user
, dengan nama host yang diperoleh dari DNS entri di langkah sebelumnya. -
Lanjut ke Pasang alat tolok ukur.
Pasang alat tolok ukur
Tabel berikut mencantumkan beberapa alat yang mungkin dapat Anda gunakan untuk mengukur kinerja EBS volume.
Alat | Deskripsi |
---|---|
fio |
Untuk tolok ukur performa I/O. (Perhatikan bahwa fio memiliki ketergantungan pada Untuk menginstal fio di Amazon Linux, jalankan perintah berikut:
Untuk memasang fio di Ubuntu, jalankan perintah berikut:
|
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. Ini tersedia untuk diunduh di https://github.com/Microsoft/diskspd/rilis Setelah Anda mengunduh file Salin yang diinginkan file Kode sumber untuk DiskSpd di-host GitHub di: https://github.com/Microsoft/diskspd |
CrystalDiskMark |
CrystalDiskMark adalah perangkat lunak benchmark disk sederhana. Ini 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 antrian pada volume yang SSD didukung
Untuk menentukan panjang antrian optimal untuk beban kerja Anda pada volume yang SSD didukung, sebaiknya Anda menargetkan panjang antrian 1 untuk setiap 1000 yang IOPS tersedia (garis dasar untuk SSD volume Tujuan Umum dan jumlah yang disediakan untuk volume yang Disediakan). IOPS SSD Kemudian, Anda dapat memantau performa aplikasi Anda dan menyesuaikan nilai tersebut berdasarkan kebutuhan aplikasi Anda.
Meningkatkan panjang antrian bermanfaat hingga Anda mencapai nilai panjang antrian sistem yang disediakanIOPS, throughput, atau optimal, yang saat ini disetel ke 32. Misalnya, volume dengan 3.000 yang disediakan IOPS harus menargetkan panjang antrian 3. Anda harus bereksperimen mengatur nilai-nilai ini ke atas atau ke bawah untuk melihat apa yang terbaik untuk aplikasi Anda.
Panjang antrian pada volume yang HDD didukung
Untuk menentukan panjang antrian optimal untuk beban kerja Anda pada volume yang HDD didukung, sebaiknya Anda menargetkan panjang antrian minimal 4 saat melakukan I/Os sekuensial 1MiB. Kemudian, Anda dapat memantau performa aplikasi Anda dan menyesuaikan nilai tersebut berdasarkan kebutuhan aplikasi Anda. Misalnya, st1
volume 2 TiB dengan throughput burst masing-masing 500. MiB/s and IOPS of 500 should target a queue length of 4, 8, or 16 while performing 1,024
KiB, 512 KiB, or 256 KiB sequential I/Os 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 menganggur sementara dalam dukungan CPU 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 C-state dan tipe EC2 instans mana yang mendukungnya, lihat Kontrol status prosesor untuk EC2 instans Anda.
Anda dapat menonaktifkan C-state di Amazon Linux,RHEL, dan CentOS sebagai berikut:
Dapatkan jumlah C-state.
$
cpupower idle-info | grep "Number of idle states:"
Nonaktifkan status C dari c1 ke cN. Idealnya, inti harus berada dalam keadaan c0.
$
for i in `seq 1 $((N-1))`; do cpupower idle-set -d $i; done
Anda dapat menonaktifkan C-states pada Windows sebagai berikut:
-
Masuk PowerShell, dapatkan skema daya aktif saat ini.
$current_scheme = powercfg /getactivescheme
-
Dapatkan skema dayaGUID.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
-
Dapatkan pengaturan dayaGUID.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
-
Dapatkan subkelompok GUID pengaturan daya.
(Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID
-
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 -
Tetapkan skema aktif untuk memastikan pengaturan disimpan.
powercfg /setactive
<power_scheme_guid>
Lakukan benchmarking
Prosedur berikut menjelaskan perintah benchmarking untuk berbagai jenis EBS volume.
Jalankan perintah berikut pada instance yang EBS dioptimalkan dengan EBS volume terlampir. Jika EBS volume dibuat dari snapshot, pastikan untuk menginisialisasi sebelum melakukan benchmarking. Untuk informasi selengkapnya, lihat Inisialisasi volume Amazon EBS.
Tip
Anda dapat menggunakan histogram latensi I/O yang disediakan oleh statistik kinerja EBS terperinci untuk membandingkan distribusi kinerja I/O dalam tes benchmarking Anda. Untuk informasi selengkapnya, lihat Statistik kinerja EBS terperinci Amazon.
Setelah selesai menguji volume, lihat topik berikut untuk bantuan pembersihan: Hapus EBS volume Amazon dan Hentikan instans Anda.
Volume Benchmark yang Disediakan IOPS SSD dan Tujuan Umum SSD
Jalankan fio pada array RAID 0 yang Anda buat.
Perintah berikut melakukan operasiacak 16 KB.
$
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.
$
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 OLTP kerja SQL Server.
diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt
Untuk informasi lebih lanjut tentang menafsirkan hasil, lihat tutorial ini: Memeriksa kinerja IO disk dengan
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
):
$
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:
$
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:
$
sudo fiofio_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.