Pertimbangan performa

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

Spesifikasi performa

Jumlah performa berikut adalah nilai maksimum perkiraan.

IOPS

IOPS maksimum diskalakan secara linear per TiB kapasitas instance yang disediakan.

Tingkat Throughput IOPS Baca (per TiB) IOPS Tulis (per TiB)
125 MBps per TiB 725 700
250 MBps per TiB 1.450 1.400
500 MBps per TiB 2.900 2.800
1000 MBps per TiB 5.800 5.600

Operasi metadata

Peningkatan operasi metadata maksimum dalam langkah-langkah per throughput yang disediakan sebesar 72 GBps.

Statistik file Pembuatan file Penghapusan file
Per 72 GBps 410.000 per detik 115.000 per detik 95.000 per detik

Performa setelah meningkatkan kapasitas

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

Performa throughput baca akan meningkat secara bertahap saat data baru ditulis dan didistribusikan ulang di seluruh penyimpanan tambahan. Performa throughput penulisan akan meningkat dengan segera.

Unit transmisi maksimum (MTU) jaringan VPC

Saat membuat jaringan VPC, menyetel 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 diperbarui 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 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 NIC Virtual Google (gVNIC). gVNIC adalah satu-satunya opsi untuk jenis mesin Generasi 3 dan yang lebih baru. gVNIC diperlukan saat menggunakan jaringan Tier_1.

Untuk mengetahui informasi mendetail, lihat Bandwidth jaringan.

Konfigurasi multi-NIC

Dengan menggunakan kemampuan multi-rail bawaan Lustre, klien dapat membagi-bagi traffic jaringan di beberapa kartu antarmuka jaringan (multi-NIC). Hal ini menggabungkan bandwidth untuk memenuhi kapasitas instance Managed Lustre yang 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 menghubungkan dari Compute Engine atau GKE.

Memverifikasi penyeimbangan traffic

Setelah mengonfigurasi multi-NIC, pastikan 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

Pastikan 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. Di output perintah, catat 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. Pada output, analisis bitrate kolom Keluar untuk eth0 dan eth1. Jika konfigurasi berhasil, bitrate akan hampir sama. 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 klien tunggal

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
    

Tes ini 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.