Benchmark Session store antara NFS dan Memcached
Coba ngetes benchmark session store pake file dan memcached.
Konfigurasi:
- 2 webserver buat ngetes centralized session store
- 1 server server nfs/memcached buat simpan session
Test:
Dibuat tes skrip pake jmeter. Intinya skrip put text di salah satu server webserver, simpan sessionid, terus di-get diserver webserver lainnya pake sessionid yang tersimpan. Jika centralized session bekerja, maka hasil yang di-get harus sama dengan yang di-put. Ukuran text yang dikirim dibagi 3, untuk 100 bytes, 1Kb, 10Kb, 100Kb.
Untuk nfs, masing2 webserver mounting ke server nfs ke direktori yang sama. Untuk memcached, pake bawaan patch rep-memcached (untuk coba replication memcached), sekalian test performance jika replication bekerja. Skrip melakukan operasi put dan get sejumlah 1000 kali dengan konkurensi 20 client.
Result:
Hasilnya dapat dilihat di gambar. Untuk NFS, nfsd berjalan dengan 8 proses dengan masing-masing menghabiskan 20-25% CPU. Sedangkan memcached dengan 2 proses (satu sebagai replication slave) menghabiskan 20-70% CPU. CPU load tertinggi berada di sisi master, sedangkan slave hanya memakan 20%.
Untuk 100 – 10Kb, memcached lebih unggul hampir 2 kali lipat dibanding NFS disegi performance (requests/second). Kemungkinannya karena memang NFS harus menghabiskan banyak waktu disisi I/O untuk read/write, sedangkan memcached tidak melibatkan disk I/O karena data disimpan di memori. Diatas 10 Kb, memcached mengalami penurunan performance, menjadi sama dengan NFS. Setting chunk_size di php.ini untuk memcached sudah ditinggikan 128Kb, supaya pas dengan ukuran size text, hasilnya tetap, hanya sedikit meningkatkan performance. Tapi kalau dilihat-lihat jarang yang menyimpan data di session store lebih dari 100Kb.
Nih, file-file buat ngetestnya : Session Test.zip
