Halaman ini membahas pengujian performa untuk instance Filestore.
Ringkasan
Jika menggunakan Linux, Anda dapat menggunakan alat Flexible IO Tester (fio) untuk menjalankan benchmark throughput baca, throughput tulis, IOPS baca, dan IOPS tulis, untuk instance tingkat dasar, regional, zonal, dan perusahaan.
Anda dapat menguji performa instance dasar menggunakan satu VM klien. Sebaiknya jangan gunakan satu VM klien untuk menguji instance regional, zonal, atau perusahaan karena tingkat layanan scaleout dioptimalkan performanya untuk beberapa VM klien dan satu klien biasanya tidak dapat mencapai IOPS atau throughput cluster maksimum.
Untuk mengetahui informasi selengkapnya, lihat Performa VM klien tunggal dan beberapa klien.
Sebelum memulai
Pasang file share Filestore yang ingin Anda uji di semua VM klien. VM ini dapat berupa satu atau beberapa VM klien, bergantung pada tingkat layanan. Untuk petunjuk mendetail dan opsi pemasangan, lihat Memasang fitur berbagi file di klien Compute Engine.
Pastikan untuk menentukan opsi pemasangan nconnect
untuk meningkatkan performa NFS. Untuk tingkat layanan tertentu, sebaiknya tentukan jumlah koneksi berikut antara klien dan server:
Tingkat | Kapasitas | Jumlah koneksi |
---|---|---|
Regional, zonal | 1-9,75 TiB | nconnect=2 |
Regional, zonal | 10-100 TiB | nconnect=7 |
Enterprise | - | nconnect=2 |
SSD skala tinggi | - | nconnect=7 |
Menguji performa dengan satu VM klien
Gunakan skenario berikut untuk melakukan pengujian pada instance dasar. Anda dapat menjalankan perintah langsung dari command line.
Throughput tulis maksimum untuk instance dasar yang lebih kecil dari 1 TiB:
fio --ioengine=libaio --filesize=4G --ramp_time=2s --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 --group_reporting --directory=/mnt/nfs --name=write --blocksize=1m --iodepth=64 --readwrite=write
Throughput baca maksimum:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=read --blocksize=1m --iodepth=64 --readwrite=read
Throughput tulis maksimum:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=write --blocksize=1m --iodepth=64 --readwrite=write
IOPS baca maksimum:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=randread --blocksize=4k --iodepth=256 --readwrite=randread
IOPS tulis maksimum:
fio --ioengine=libaio --filesize=32G --ramp_time=2s \ --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \ --group_reporting --directory=/mnt/nfs --buffer_compress_percentage=50 \ --name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite
Menguji performa dengan beberapa VM klien
Untuk mencapai performa maksimum untuk instance zonal, regional, dan perusahaan, gunakan beberapa VM klien.
Sebaiknya gunakan delapan VM klien per 1 TiB untuk instance antara 1 dan 9,75 TiB. Untuk instance antara 10 dan 100 TiB, gunakan delapan VM klien per 10 TiB.
Mulai server fio di semua VM klien. Fio menggunakan port
8765
untuk berkomunikasi, sehingga port ini harus terbuka di kebijakan firewall Anda.fio --server
Pilih satu VM klien yang akan mengatur operasi fio. Buat file tugas fio di VM klien tersebut:
cat << EOL > /tmp/fio_job.conf [global] ioengine=libaio ramp_time=2s runtime=3m time_based direct=1 verify=0 randrepeat=0 group_reporting buffer_compress_percentage=50 directory=\${TMP_DIR} create_only=\${CREATE_ONLY} [read-throughput] blocksize=1048576 numjobs=8 readwrite=read filesize=100M [write-throughput] blocksize=1048576 numjobs=8 readwrite=write filesize=100M [read-iops] blocksize=4k iodepth=64 readwrite=randread filesize=1GB [write-iops] blocksize=4k iodepth=64 readwrite=randwrite filesize=1GB EOL
Buat file
hosts.list
yang berisi alamat IP atau nama DNS VM klien fio:cat << EOL > /tmp/hosts.list <Client 1 IP/DNS> <Client 2 IP/DNS> ... <Client N IP/DNS> EOL
Buat set data berikut di direktori sementara di VM klien tempat Anda membuat file tugas:
export TMP_DIR=$(mktemp -d MOUNT_POINT_DIRECTORY/XXXXX) chmod 777 ${TMP_DIR} export CREATE_ONLY=1 fio --client=/tmp/hosts.list \ --section=read-throughput --section=read-iops /tmp/fio_job.conf
Jalankan benchmark menggunakan VM klien yang Anda buat file tugasnya:
- Throughput baca maksimum
export CREATE_ONLY=0 fio --client=/tmp/hosts.list --section=read-throughput /tmp/fio_job.conf
- Throughput tulis maksimum
export CREATE_ONLY=0 fio --client=/tmp/hosts.list --section=write-throughput /tmp/fio_job.conf
- IOPS baca maksimum
export CREATE_ONLY=0 fio --client=/tmp/hosts.list --section=read-iops /tmp/fio_job.conf
- IOPS tulis maksimum
export CREATE_ONLY=0 fio --client=/tmp/hosts.list --section=write-iops /tmp/fio_job.conf
Setelah selesai melakukan pengujian, hentikan server fio di semua VM klien dan hapus direktori sementaranya:
rm -rf ${TMP_DIR}