Pertimbangan performa

Halaman ini memberikan panduan tentang cara mengonfigurasi lingkungan Google Cloud Managed Lustre untuk mendapatkan performa terbaik.

Untuk melihat angka performa yang spesifik untuk setiap tingkat performa, lihat Tingkat performa.

Performa setelah meningkatkan kapasitas

Meningkatkan kapasitas penyimpanan instance yang ada akan meningkatkan throughput dan IOPS maksimumnya, dan mungkin performa metadatanya.

Performa throughput baca akan meningkat secara bertahap saat data baru ditulis dan didistribusikan ulang di seluruh penyimpanan tambahan. Performa throughput tulis akan meningkat secara langsung.

Unit transmisi maksimum (MTU) jaringan VPC

Saat membuat jaringan VPC, menetapkan nilai mtu (unit transmisi maksimum, atau ukuran paket IP terbesar yang dapat ditransmisikan di jaringan ini) ke nilai maksimum yang diizinkan, yaitu 8896, akan meningkatkan performa hingga 10% dibandingkan dengan nilai default 1460 byte.

Anda dapat melihat nilai MTU jaringan saat ini dengan perintah berikut:

gcloud compute networks describe NETWORK_NAME --format="value(mtu)"

Nilai MTU jaringan dapat diupdate setelah jaringan dibuat, tetapi ada pertimbangan penting. Lihat Mengubah MTU jaringan untuk mengetahui detailnya.

Jenis mesin Compute Engine

Throughput jaringan dapat dipengaruhi oleh pilihan jenis mesin Anda. Secara umum, untuk mendapatkan throughput terbaik:

  • Menambah jumlah vCPU. Bandwidth traffic keluar maksimum per instance umumnya adalah 2 Gbps per vCPU, hingga maksimum jenis mesin.
  • Pilih seri mesin yang mendukung batas traffic masuk dan keluar yang lebih tinggi. Misalnya, instance C2 dengan jaringan Tier_1 mendukung bandwidth traffic keluar hingga 100 Gbps. Instance C3 dengan jaringan Tier_1 mendukung hingga 200 Gbps.
  • Aktifkan performa jaringan per VM Tier_1 dengan jenis mesin yang lebih besar.
  • Gunakan Google Virtual NIC (gVNIC). gVNIC adalah satu-satunya opsi untuk jenis mesin Generasi ke-3 dan yang lebih baru. gVNIC diperlukan saat menggunakan jaringan Tier_1.

Untuk informasi mendetail, lihat Bandwidth jaringan.

Konfigurasi multi-NIC

Dengan menggunakan kemampuan multi-rail bawaan Lustre, klien dapat membagi traffic jaringan di beberapa kartu antarmuka jaringan (multi-NIC). Hal ini menggabungkan bandwidth untuk memenuhi instance Managed Lustre berkapasitas tinggi.

Untuk mengonfigurasi multi-NIC, Anda harus:

  • Pilih jenis mesin dengan beberapa NIC fisik.
  • Buat subnet untuk setiap NIC dan tetapkan setiap NIC ke subnetnya.
  • Ikuti langkah-langkah multi-NIC saat terhubung dari Compute Engine atau GKE.

Memverifikasi penyeimbangan traffic

Setelah mengonfigurasi multi-NIC, verifikasi bahwa data diseimbangkan dengan benar.

Compute Engine

Verifikasi penyeimbangan data langsung di VM dengan memantau antarmuka jaringan yang dikonfigurasi (misalnya, eth0 dan eth1) menggunakan nload saat membuat traffic ke backend Managed Lustre:

nload -m eth0 eth1

Dalam konfigurasi multi-NIC yang berhasil, bitrate keluar harus kira-kira setara di semua antarmuka yang dikonfigurasi.

GKE

Konfirmasi bahwa traffic jaringan dari workload Anda diseimbangkan di beberapa NIC dengan men-deploy Pod network-debugger sementara ke node tempat workload Anda dijadwalkan:

  1. Identifikasi node tempat workload Anda dijadwalkan:

    kubectl get pod POD_NAME -o wide
    

    Ganti POD_NAME dengan nama Pod Anda. Dalam output perintah, perhatikan nama di kolom NODE.

  2. Luncurkan debugger jaringan di node tersebut:

    kubectl run multi-nic-debug --rm -i --tty --image=nicolaka/netshoot \
      --overrides='{"spec": {"hostNetwork": true, "nodeSelector": {"kubernetes.io/hostname": "NODE_NAME"}, "tolerations": [{"key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule"}]}}' \
      -- /bin/bash -c "apk update && apk add nload && nload -m eth0 eth1"
    

    Ganti NODE_NAME dengan nama node dari langkah sebelumnya.

  3. Dalam output, analisis bitrate kolom Outgoing untuk eth0 dan eth1. Jika konfigurasi berhasil, bitrate akan kira-kira setara. Outputnya mirip dengan hal berikut ini:

    Device eth0 [10.1.0.50] (1/2):
    ==========================================================================
    Incoming:                               Outgoing:
    Curr: 1.63 MBit/s                       Curr: 1.46 GBit/s
    Avg: 1.60 MBit/s                        Avg: 1.44 GBit/s
    Min: 1.40 MBit/s                        Min: 1.25 GBit/s
    Max: 1.64 MBit/s                        Max: 1.47 GBit/s
    Ttl: 590.94 GByte                       Ttl: 405.19 GByte
    
    Device eth1 [172.16.15.5] (2/2):
    ==========================================================================
    Incoming:                               Outgoing:
    Curr: 1.64 MBit/s                       Curr: 1.47 GBit/s
    Avg: 1.62 MBit/s                        Avg: 1.44 GBit/s
    Min: 1.42 MBit/s                        Min: 1.26 GBit/s
    Max: 1.66 MBit/s                        Max: 1.47 GBit/s
    Ttl: 587.68 GByte                       Ttl: 406.36 GByte
    
  4. Keluar dari debugger dengan menekan Ctrl+C.

Mengukur performa satu klien

Untuk menguji performa baca dan tulis dari satu klien Compute Engine, gunakan alat command line fio (penguji I/O Fleksibel).

  1. Instal fio:

    Rocky 8

    sudo dnf install fio -y
    

    Ubuntu 20.04 dan 22.04

    sudo apt update
    sudo install fio
    
  2. Jalankan perintah berikut:

    fio --ioengine=libaio --filesize=32G --ramp_time=2s \
    --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
    --group_reporting --directory=/lustre --buffer_compress_percentage=50 \
    --name=read --blocksize=1m --iodepth=64 --readwrite=read
    

Pengujian memerlukan waktu sekitar 5 menit untuk diselesaikan. Setelah selesai, hasilnya akan ditampilkan. Bergantung pada konfigurasi Anda, Anda dapat mengharapkan throughput hingga kecepatan jaringan maksimum VM, dan ribuan IOPS per TiB.