Menguji performa instance

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=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 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.

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

    fio --server
    
  2. Pilih 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
    
    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 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.conf
    
  5. Jalankan 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.conf
    
  6. Setelah Anda selesai melakukan pengujian, hentikan server fio di semua VM klien dan hapus direktori sementara:

    rm -rf ${TMP_DIR}