Saya akan mulai dengan membaca artikel Wikipedia tentang masalah ini.
Singkatnya, skalabilitas adalah bagaimana kinerja sistem tumbuh dengan menambahkan lebih banyak sumber daya atau, sebagai alternatif, bagaimana pemanfaatan sumber daya tumbuh dengan meningkatnya beban . Misalnya, berapa banyak pengguna secara bersamaan yang dapat menangani situs Anda sampai waktu respons tumbuh melampaui 0,3 detik? Pertanyaan yang sama setelah Anda menggandakan RAM / disk / CPU / etc yang tersedia. Anda mungkin dapat menggunakan pengetahuan Anda tentang internal aplikasi untuk memutuskan parameter mana yang perlu diperiksa.
Siapkan bangku tes dengan mesin server dan satu atau lebih mesin klien. Gunakan beberapa alat untuk membatasi jumlah sumber daya yang tersedia untuk server (misalnya ulimit
) atau menjalankan beberapa aplikasi yang mengganggu di server. Ukur bagaimana server menangani permintaan klien. Ulangi langkah di atas secara bertahap meningkatkan / mengurangi beban yang mengganggu / sumber daya yang tersedia. Pada akhirnya Anda mendapatkan ruang n-dimensi dengan titik-titik di dalamnya. Mungkin lebih mudah untuk mengubah hanya satu parameter pada satu waktu sambil memperbaiki semua yang lain pada beberapa nilai khas (atau beberapa nilai). Dalam hal ini Anda dapat merepresentasikan hasilnya sebagai sekelompok grafik 2D dengan kinerja server (mis. Jumlah pengguna / permintaan) pada satu sumbu dan pemanfaatan / ketersediaan sumber daya di sisi lainnya.
Ada beberapa skenario yang lebih kompleks di mana aplikasi Anda menggunakan beberapa server untuk beberapa bagian aplikasi dan Anda dapat memvariasikan jumlah dan rasio mereka, tetapi saya kira itu bukan masalah Anda. Paling-paling, Anda mungkin ingin memvariasikan jumlah utas / proses, jika ini penting.
Jika Anda mengukur keseluruhan aplikasi, Anda biasanya tidak memerlukan akses kode sumber. Namun, Anda mungkin menarik dalam mengukur beberapa bagian spesifik dari kode (mis. Hanya DB atau UI). Kemudian Anda dapat menggunakan kode sumber untuk mengekspos modul ini hanya untuk pengukuran dan menjalankan tes Anda. Ini disebut microbenchmark .
Jika Anda mencari contoh, ada banyak di artikel akademis. Cari google scholar untuk evaluasi kinerja + istilah yang Anda sukai.