Halaman ini membahas pengujian performa untuk instance Filestore.
Ringkasan
Jika menggunakan Linux, Anda dapat menggunakan alat Flexible IO Tester (fio) untuk mengukur tolok ukur throughput baca, throughput tulis, IOPS baca, dan IOPS tulis untuk instance tingkat dasar, regional, zonal, dan enterprise.
Anda dapat menguji performa instance dasar menggunakan satu VM klien. Sebaiknya jangan gunakan VM klien tunggal untuk menguji instance regional, zonal, atau perusahaan karena tingkat layanan scale-out dioptimalkan performanya untuk beberapa VM klien dan klien tunggal biasanya tidak dapat mencapai IOPS atau throughput cluster maksimum.
Untuk mengetahui informasi selengkapnya, lihat Performa VM klien tunggal dan ganda.
Sebelum memulai
Pasang berbagi file Filestore yang ingin Anda uji di semua VM klien. Dapat berupa satu atau beberapa VM klien, bergantung pada tingkat layanan. Untuk mengetahui 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 |
Anda dapat mengoptimalkan throughput baca NFS dengan menyesuaikan nilai parameter read_ahead_kb. Untuk mengetahui informasi selengkapnya, lihat Mengoptimalkan throughput baca NFS dengan parameter read_ahead_kb.
Menguji performa dengan VM klien tunggal
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=writeThroughput 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=readThroughput 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=writeIOPS 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=randreadIOPS 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 enterprise, gunakan beberapa VM klien.
Sebaiknya gunakan delapan VM klien per 1 TiB untuk instance antara 1 dan 9,75 TiB. Untuk instance berukuran antara 10 dan 100 TiB, gunakan delapan VM klien per 10 TiB.
Mulai server fio di semua VM klien. Fio menggunakan port
8765untuk berkomunikasi, jadi port ini harus dibuka di kebijakan firewall Anda.fio --serverPilih satu VM klien yang akan mengatur eksekusi 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 EOLBuat file
hosts.listyang 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> EOLBuat set data berikut di direktori sementara pada 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.confJalankan tolok ukur 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.confSetelah Anda selesai melakukan pengujian, hentikan server fio di semua VM klien dan hapus direktori sementara:
rm -rf ${TMP_DIR}