Ada banyak cara untuk melakukan benchmark sebuah arsitektur server. Salah satunya adalah dengan menggunakan Apache Benchmark. Pada artikel ini, kita akan membahas cara melakukan benchmark menggunakan Apache Benchmark pada sebuah LAMP server yang didalamnya terdapat Aplikasi WordPress. Untuk mempermudah pembahasan, saya akan menggunakan topologi server seperti pada Gambar 1. Show
Kedua server dalam topologi tersebut saya buat menggunakan VirtualBox dengan spesifikasi Gambar 2. Spesifikasi Virtual Machinedan keduanya sama-sama menggunakan Sistem Operasi Ubuntu 16.04. Instalasi LAMP ServerAnda dapat membuat LAMP server (192.168.1.101) dengan mengikuti panduan yang telah saya tuliskan pada artikel berikut Instalasi Linux, Apache, MySQL, PHP (LAMP) stack pada Ubuntu 16.04LAMP stack adalah kumpulan beberapa perangkat lunak open source yang digunakan secara bersamaan untuk membangun sebuah…medium.com Di dalam LAMP server (192.168.1.101) tersebut anda perlu meng-install WordPress. Anda dapat membuatnya dengan mengikuti panduan instalasi WordPress saya tuliskan dalam artikel berikut Instalasi WordPress Pada Server LinuxWordPress adalah open-source Content Management System (CMS) berbasis PHP dan MySQL (atau MariaDB). WordPress merupakan…medium.com Di dalam aplikasi WordPress tersebut juga telah saya generate 500 dummy posts menggunakan plugin WordPress FakerPress. Panduan untuk men-generate 500 dummy posts tersebut juga telah saya tuliskan pada artikel berikut. Instalasi WordPress FakerPressFakerPress (https://wordpress.org/plugins/fakerpress/) adalah plugin WordPress yang dapat digunakan untuk men-generate…medium.com Membuat Daftar URLSebelum melakukan benchmark, kita perlu membuat daftar URL dari posting yang telah kita siapkan menggunakan WordPress FakerPress. 1. Membuat Daftar Post IDMasukkan ke dalam terminal MySQL di dalam LAMP server (192.168.1.101) dengan perintah $ mysql -u root -p masukkan password user root database MySQL. Pilih database yang digunakan oleh aplikasi WordPress, misalnya dengan perintah mysql> USE wordpress; Jalankan perintah berikut untuk mengetahui directory dimana kita bisa menyimpan file output dari perintah MySQL yang kita jalankan mysql> SHOW VARIABLES LIKE "secure_file_priv"; berikut adalah contoh output pada server LAMP saya +------------------+-----------------------+ Jalankan perintah berikut dengan directory mysql> SHOW VARIABLES LIKE "secure_file_priv"; 1 yang disesuaikan dengan value dari variable mysql> SHOW VARIABLES LIKE "secure_file_priv"; 2 tersebut.mysql> SELECT ID FROM wp_posts Perintah tersebut akan menyimpan hasil query ke dalam file mysql> SHOW VARIABLES LIKE "secure_file_priv"; 3. Keluarlah dari terminal MySQL dengan perintah mysql> SHOW VARIABLES LIKE "secure_file_priv"; 4. Anda dapat mengecek file output perintah tersebut dengan perintah$ sudo tail /var/lib/mysql-files/ID.csv Berikut adalah contoh post ID di server saya "943" 2. Memindahkan File Post IDKita perlu memindahkan file mysql> SHOW VARIABLES LIKE "secure_file_priv"; 3 dari server LAMP (192.168.1.101) ke server Apache Benchmark (192.168.1.110). Ada berbagai cara yang dapat anda lakukan untuk memindahkan file tersebut. Dalam artikel ini kita akan menggunakan mysql> SHOW VARIABLES LIKE "secure_file_priv"; 6. Dari command line server LAMP (192.168.1.101), jalankan perintah berikut$ sudo scp /var/lib/mysql-files/ID.csv [email protected]:~/ID.csv sesuaikan user mysql> SHOW VARIABLES LIKE "secure_file_priv"; 7 dengan user pada server Apache Benchmark. File mysql> SHOW VARIABLES LIKE "secure_file_priv"; 8 tersebut tersimpan ke dalam home directory user mysql> SHOW VARIABLES LIKE "secure_file_priv"; 7 dalam Apache Benchmark server.3. Membuat Daftar URLMasuklah ke terminal di server Apache Benchmark (192.168.1.110). Masuklah ke dalam directory tempat file mysql> SHOW VARIABLES LIKE "secure_file_priv"; 8 disimpan, lalu jalankan perintah berikut untuk membuat daftar URL dari file mysql> SHOW VARIABLES LIKE "secure_file_priv"; 8.$ cat ID.csv | sed 's/.$//' | sed 's/\"/http:\/\/192.168.56.101\/?p=/g' > URL.txt Hasil dari perintah tersebut adalah file +------------------+-----------------------+ 2 yang berisi seluruh URL posting yang ada dalam WordPress. Bila anda melihat isi dari file +------------------+-----------------------+ 2 dengan perintah$ tail URL.txt anda akan mendapat output berikut mysql> USE wordpress; 0Konfigurasi Permalink1. Merubah Permission .htaccessKita perlu mengganti permalink pada WordPress agar posting pada diakses menggunakan URL yang telah kita siapkan. Sebelum anda merubah konfigurasi permalink, pastikan file +------------------+-----------------------+ 4 dalam di root directory WordPress bersifat writable oleh user +------------------+-----------------------+ 5. Jalankan perintahmysql> USE wordpress; 12. Mengganti Konfigurasi Permalink WordPressMasukkan ke dalam halaman administrator WordPress melalui ke URL +------------------+-----------------------+ 6. Kemudian masukkan ke menu +------------------+-----------------------+ 7.Gambar 3. Konfigurasi PermalinksPilih setting +------------------+-----------------------+ 8 dan simpan konfigurasi dengan menekan tombol +------------------+-----------------------+ 9.3. Mengembalikan Permission .htaccessKembalikan permission .htaccess untuk meningkatkan keamanan WordPress anda dengan perintah mysql> USE wordpress; 2Instalasi Server Apache BenchmarkAda dua program yang perlu kita install dalam server Apache Benchmark (192.168.1.110), yaitu mysql> SELECT ID FROM wp_posts 0 dan mysql> SELECT ID FROM wp_posts 1. mysql> SELECT ID FROM wp_posts 0 adalah package yang berisi beberapa tools terkait Apache, termasuk diantaranya adalah mysql> SELECT ID FROM wp_posts 3 (Apache Benchmark). Sedangkan mysql> SELECT ID FROM wp_posts 1 adalah program untuk menjalankan beberapa program secara concurrent pada sistem operasi Linux. mysql> SELECT ID FROM wp_posts 3 hanya dapat melakukan benchmark pada satu URL dalam satu kali running, sehingga kita memerlukan mysql> SELECT ID FROM wp_posts 1 untuk agar dapat melakukan benchmark beberapa URL secara bersamaan.Cara meng-install kedua program tersebut adalah mysql> USE wordpress; 3Melakukan Benchmark1. Menjalankan benchmarkLangkah berikutnya adalah melakukan benchmark menggunakan perintah mysql> SELECT ID FROM wp_posts 3melalui server Apache Benchmark (192.168.1.110). Masukkan ke dalam directory tempat file +------------------+-----------------------+ 2 tersimpan lalu jalankan perintah berikutmysql> USE wordpress; 4Mari kita bongkar perintah tersebut dan kita bahas masing-masing fungsinya. mysql> USE wordpress; 5berfungsi menampilkan 50 baris terakhir dari file +------------------+-----------------------+ 2. Hasil dari perintah tersebut kemudian kita jadikan input untuk perintah selanjutnya menggunakan perintah $ sudo tail /var/lib/mysql-files/ID.csv 0.mysql> USE wordpress; 6akan menjalankan perintah $ sudo tail /var/lib/mysql-files/ID.csv 1 secara paralel dan menyimpan output ke dalam file $ sudo tail /var/lib/mysql-files/ID.csv 2. Hal ini dimungkinkan karena kita memberikan perintah $ sudo tail /var/lib/mysql-files/ID.csv 3 diantara dua perintah tersebut.$ sudo tail /var/lib/mysql-files/ID.csv 4 dan $ sudo tail /var/lib/mysql-files/ID.csv 5 adalah input hasil parsing URL input menggunakan argumen $ sudo tail /var/lib/mysql-files/ID.csv 6. Misalkan hasil pembacaan perintah tail adalah $ sudo tail /var/lib/mysql-files/ID.csv 7, maka variable$ sudo tail /var/lib/mysql-files/ID.csv 4 dan $ sudo tail /var/lib/mysql-files/ID.csv 5 akan bernilai "943" 0 dan "943" 1.2. Output benchmarkOutput dari perintah benchmark tersebut adalah file "943" 2 dengan nomor yang sesuai dengan ID post WordPress yang diuji. Gambar 4 adalah daftar file output di server Apache Benchmark yang saya gunakanGambar 4. Contoh hasil outputBerikut adalah contoh isi dari file "943" 3.mysql> USE wordpress; 73. Contoh-contoh Perintah BenchmarkBerikut saya berikan beberapa contoh perintah opsi benchmark yang dapat anda gunakan. Contoh 1mysql> USE wordpress; 4Perintah ini akan menjalankan 50 program mysql> SELECT ID FROM wp_posts 3 dengan URL berbeda dimana masing-masing program mysql> SELECT ID FROM wp_posts 3 akan menjalankan 2 koneksi secara concurrent dengan total koneksi sebanyak 20.Bila dijumlahkan, maka akan ada 1000 koneksi concurrent dengan total 2000 koneksi yang masuk ke server. |