Pada server dengan dua CPU, akses memori melambat jika thread memakai memori yang terpasang pada CPU seberang.
Mengapa Thread dan memori ditempatkan di socket CPU yang berbeda → Akibatnya Akses memori melambat (1,5–2 kali, tergantung perangkat) → Di layar Spesifikasi sama, tetapi performa berbeda di setiap proses
Penanggung jawab utama Infrastruktur server (Tim Infrastruktur)
Tugas Tim Infrastruktur
Kunci proses dan memori di satu socket (numactl); jika ada dua socket, jalankan proses server game terpisah untuk setiap socket.
Di grafik
Hanya sebagian yang tinggi · Waktu tick per proses, memori per node
Yang diperiksa
Dengan numastat -p PID, periksa di node NUMA mana memori proses server game berada dan apakah numa_miss dan other_node di numastat bertambah, lalu bandingkan dengan node CPU tempat proses itu berjalan
Cocok jika
Hanya proses yang lambat yang sebagian besar memorinya ada di node yang berbeda dari CPU tempatnya berjalan, dan perbedaannya hilang setelah proses dijalankan ulang dengan CPU dan memori dikunci di satu node menggunakan numactl
Tidak cocok jika
Penempatan node sama dengan proses yang cepat tetapi tetap lambat: lebih mungkin penyebab lain seperti noisy neighbor, CPU throttling, atau beban proses itu sendiri
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Sumber
What is NUMA?Linux kernel Memori di cell yang sama lebih cepat dan bandwidth-nya lebih besar, sedangkan akses ke memori di cell lain (remote) lebih lambat
numastat(8) — Linux manual pagenumactl Counter numa_miss (dialokasikan di node selain yang diinginkan) dan other_node (dialokasikan di node ini oleh proses yang berjalan di node lain); -p menampilkan memori proses per node