Sistem file jaringan (NFS) memungkinkan mesin untuk memasang partisi disk pada mesin jarak jauh seolah-olah itu adalah disk lokal. Ini memungkinkan berbagi file dengan cepat dan mulus di seluruh jaringan. Namun, karena NFS bergantung pada infrastruktur jaringan yang ada, gangguan apa pun pada jaringan dapat memengaruhi kinerja koneksi. Dua alat terpenting yang saya gunakan selama bertahun-tahun untuk menganalisis kinerja NFS dari perspektif server dan klien adalah nfsstat
dan nsfiostat
. Kedua alat tersebut merupakan bagian dari paket nfs-utils dan perlu diinstal seperti:
yum install -y nfs-utils
Memahami keluaran alat dapat membantu mengoptimalkan kinerja NFS.
Perintah nfsstat
nfsstat
perintah menampilkan informasi statistik tentang antarmuka NFS dan Remote Procedure Call (RPC) ke kernel.
Di server NFS, jalankan perintah berikut:
nfsstat -s
Outputnya harus seperti di bawah ini:
Server rpc stats:
calls badcalls badclnt badauth xdrcall
107310012 0 0 0 0
Server nfs v4:
null compound
21 0% 107310004 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 910848 0% 5671218 2% 153218 0%
create delegpurge delegreturn getattr getfh link
4104 0% 0 0% 517 0% 58659066 22% 8700995 3% 0 0%
Bidang yang paling penting untuk diperiksa adalah badcalls
, yang mewakili jumlah total panggilan yang ditolak oleh lapisan RPC. Saat badcalls
lebih besar dari 0, daripada jaringan yang mendasarinya perlu diperiksa, karena mungkin ada latensi. Selain itu, sangat penting untuk menempatkan server NFS di subnet yang sama dengan klien NFS saat mendesain jaringan.
Pada klien NFS, Anda menjalankan yang berikut:
nfsstat -c
Outputnya harus seperti di bawah ini:
Client rpc stats:
calls retrans authrefrsh
30557550 27686 11075
Client nfs v4:
null read write commit open open_conf
0 0% 1601136 5% 568239 1% 23683 0% 1652804 5% 1466260 4%
open_noat open_dgrd close setattr fsinfo renew
0 0% 0 0% 1648000 5% 27154 0% 8 0% 28320 0%
Dari atas, klien baik-baik saja karena memiliki permintaan transmisi ulang yang relatif sedikit. Jika Anda mengalami transmisi ulang yang berlebihan, Anda mungkin ingin menyesuaikan ukuran buffer transfer data, yang ditentukan oleh mount
opsi perintah rsize
dan wsize
.
Anda juga dapat memeriksa paket yang dijatuhkan dengan menjalankan perintah berikut di server dan klien:
nfsstat -o net
Perintah nfsiostat
nfsiostat
perintah bekerja mirip dengan iostat
perintah, tetapi digunakan untuk titik pemasangan NFS di server. Ini menggunakan file /proc/self/mountstats
sebagai input dan memberikan informasi tentang kinerja input/output dari share NFS yang dipasang pada sistem.
nfsiostat
perintah digunakan pada klien NFS untuk memeriksa kinerjanya saat berkomunikasi dengan server NFS.
Menjalankan nfsiostat
tanpa argumen apa pun harus memiliki output yang mirip dengan berikut:
10.10.1.10:/data/share mounted on /samba/students:
op/s rpc bklog
16.96 0.00
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.900 5.392 5.990 0 (0.0%) 0.550 0.660
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.031 21.818 708.149 0 (0.0%) 122.745 35874.872
Statistik terpenting yang harus diperhatikan adalah:
retrans
- Ini adalah jumlah transmisi ulang.avg RTT (ms)
- Ini adalah durasi dari saat kernel klien mengirimkan permintaan RPC hingga saat menerima balasan.avg exe (ms)
- Ini adalah durasi dari saat klien NFS membuat permintaan RPC ke kernelnya hingga permintaan RPC selesai. Ini termasuk RTT.
avg RTT(ms)
dan retrans
menunjukkan ada latensi tinggi pada jaringan. Latensi tinggi juga mempengaruhi kinerja I/O, karena akan ada banyak waktu habis. Klien akan menjadi lamban dan sulit untuk diajak bekerja sama.
Juga sangat penting untuk selalu memiliki jaringan khusus antara server NFS dan klien NFS untuk memastikan throughput yang tinggi.
Penutup
Penggunaan nfsstat
dan nfsiostat
untuk memecahkan masalah kinerja NFS dapat membuat Anda menjadi administrator sistem yang jauh lebih efisien. Luangkan waktu untuk mempelajari dan menggunakan alat NFS yang hebat ini.
[ Ingin lebih banyak untuk jaringan Anda? Unduh ebook gratis tentang otomatisasi jaringan dengan Ansible. ]