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:
-
Luncurkan instans yang dioptimalkan EBS.
-
Buat volume EBS baru.
-
Lampirkan volume ke instans yang dioptimalkan EBS.
-
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 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 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 volume HDD menggunakan template
Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation
. -
Pilih Buat tumpukan.
-
Pilih Unggah Templat ke Amazon S3 dan pilih templat JSON yang Anda dapatkan sebelumnya.
-
Berikan nama tumpukan Anda seperti “ebs-perf-testing”, dan pilih tipe instans (defaultnya adalah r3.8xlarge) dan kunci SSH.
-
Pilih Selanjutnya dua kali, lalu pilih Buat Tumpukan.
-
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. -
Terhubung menggunakan SSH ke tumpukan baru Anda sebagai pengguna
ec2-user
, dengan nama host yang diperoleh dari entri DNS 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 volume EBS.
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. Tersedia untuk diunduh di https://github.com/Microsoft/diskspd/releases Setelah Anda mengunduh file Salin yang diinginkan file 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:
Dapatkan jumlah C-state.
$
C:\>
cpupower idle-info | grep "Number of idle states:"
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:
-
Masuk PowerShell, dapatkan skema daya aktif saat ini.
$current_scheme = powercfg /getactivescheme
-
Dapatkan skema daya GUID.
(Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
-
Dapatkan pengaturan daya GUID.
(Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
-
Dapatkan pengaturan daya subgrup GUID.
(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 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 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.