Menguji performa instance

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.

  1. Mulai server fio di semua VM klien. Fio menggunakan port 8765 untuk berkomunikasi, sehingga port ini harus terbuka di kebijakan firewall Anda.

    fio --server
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. Setelah selesai melakukan pengujian, hentikan server fio di semua VM klien dan hapus direktori sementaranya:

    rm -rf ${TMP_DIR}