Sabtu, 12 Februari 2022

Solusi mengubah mpm ke mpm_worker

 I found the possible solution to resolve this on my ubuntu server, dont know whether you are running ubuntu as well on your side, but I feel that the steps that I have taken will be the same for almost all distros with change in 1 step where you need to install a new package and the command for that may change based on the distro that you are using.

so the first step is

$ sudo a2dismod php7.3 mpm_prefork

This will disable the prefork module but before that it will disable the php7.3 module to stop the dependency error from occurring.

Next, we enable the worker module

$ sudo a2enmod mpm_worker

Now, the output would suggest that you restart the apache web-server. So, we do the same

$ sudo systemctl restart apache2

Now, if you go to check your website homepage, it may either throw an error or may load a blank page.

So, how do we resolve that; I scoured multiple community forums and found a solution related to the same but it was for freebsd platform so tried the same on ubuntu with some tweaks required to be made on ubuntu side for the steps to work.

The Solution based on ubuntu OS :

First of all, we enable the proxy, proxy_fcgi and setenvif module followed with a php-fpm package installation corresponding to your php version

$ sudo a2enmod proxy
$ sudo a2enmod proxy_fcgi
$ sudo a2enmod setenvif
$ sudo apt-get install php7.3-fpm -y

the php7.3-fpm installation command is the one where you may need to check the installation steps based on the Distro you are using.

Once, php-fpm service is installed you need to make sure that it gets enabled and then start it, so for that

$ sudo a2enconf php7.3-fpm
$ sudo systemctl enable php7.3-fpm.service
$ sudo systemctl start php7.3-fpm.service

Once, the php-fpm service starts successfully, just restart apache service to make sure all the made changes take effect properly

$ sudo systemctl restart apache2

After these steps are taken, please check/refresh your website homepage and the error page or the blank page will change to the proper website page.

The End-Result; your website has shifted from using prefork module to worker module to handle requests.

Also, if you want to switch to event module instead of worker module; just enable event module in place of worker module in the second step; the one that you will take after disabling php7.3 and prefork module

replace

$ sudo a2enmod mpm_worker

with

$ sudo a2enmod mpm_event

rest all steps after that remain the same irrespective of enabling worker or event module.

These steps helped me switch from prefork module to worker module on my server so hoping it may help you as well as help others who stumble on this issue.

Share:

Kamis, 27 Januari 2022

Mengenal Kinerja Apache Worker di Balik Layanan Data Berbasis Web

 Blog.Gamatechno.com – Memiliki sebuah layanan berbasis web menuntut pemiliknya untuk terus meningkatkan layanannya. Apalagi saat web harus diakses oleh banyak orang, tentu saja performa dan kinerjanya harus dapat dipastikan tangguh agar benar-benar kuat dan siap melayani request dari pengguna. Dengan produk-produk yang sebagian besar berbasis web, Gamatechno pun selalu melakukan improvment teknologi pada layanannya. Salah satunya adalah perubahan mode kerja di web server Gamatechno, terutama untuk produk segment Academic yang memiliki banyak client perguruan tinggi.

Apa itu Web server, mode kerja dan perubahan apa yang perlu dilakukan untuk meningkatkan kinerja layanan data web akan diulas lengkap oleh Wahyu Bimo Sukarno dalam artikel berikut.

Web server pada layanan data berbasis web

Web server secara fisik didefinisikan sebagai sebuah komputer/host yang berfungsi untuk menyimpan dan memberikan layanan data HTTP. Saat website di akses oleh banyak orang dalam satu waktu bersamaan, web server akan bekerja sangat keras. Pada waktu inilah kita bisa mengukur seperti apa kinerja web server yang kita gunakan.

Istilah untuk jumlah permintaan data dalam waktu bersamaan disebut concurent connection. Apabila concurent connection tidak dibatasi, maka space memory dan processor server akan habis. Jika hal itu berlangsung terus menerus dalam waktu yang lama maka server bisa berhenti melayani permintaan akses website bahkan sampai terjadi kerusakan hardware. Tentu tidak jarang kita mendengar istilah komputer server yang mati bukan? Hal itulah yang menjadi salah satu penyebabnya.

Mode Kerja Prefork vs Worker

Web server masa kini memiliki banyak pilihan mode kerja (working mode), di antaranya Prefork atau Multi Processing Module Prefork (MPM Prefork) dan Worker (MPM Worker). Bagi pengguna server Apache, mode prefork merupakan mode yang otomatis digunakan/default saat instalasi. Namun mode kerja ini memiliki kemampuan concurrency/proses transaksi yang rendah sehingga hanya cocok untuk aplikasi skala kecil.

Ketika web server harus diakses oleh user dalam jumlah banyak, mode Worker menjadi pilihan yang pas. Dengan concurrency yang tinggi serta kemampuannya yang efektif dan efisien mengatur proses kerja, web server akan jauh lebih tangguh dengan mode ini.  

Gambar berikut ini dapat menjelaskan proses di mode Prefork yang hanya bisa menangani satu user saja, sementara di mode Worker, satu proses bisa terdiri dari banyak thread dan banyak user. Daemon adalah proses yang berjalan secara realtime dan berfungsi membuat aplikasi yang berjalan di service berjalan secara otomatis.

image 1
Gambar 1. Perbandingan cara kerja mode Prefork dan mode Worker

Perhatikan konfigurasi prefork mode pada gambar di bawah ini!

image 2
Gambar 2. Konfigurasi Mode Prefork

Konfigurasi tersebut memiliki arti bahwa jika mode Prefork yang diaktifkan maka akan disediakan setidaknya 5 daemon server. Dalam suatu proses dapat disediakan lebih dari 10 daemon server, dengan setiap daemonnya memiliki kemampuan menangani 150 request. Berarti dalam satu waktu bersamaan, Apache mampu melakukan handling 1500 request. Apakah yang akan terjadi jika request yang ada melebihi jumlah yang disediakan? Maka koneksi selanjutnya, misal ke 1501? Koneksi selanjutnya akan difilter oleh firewall Apache, dan memasuki masa tunggu. Dalam browser si client, akan terjadi halaman kosong dengan status-bar waiting yang cukup lama, menunggu salah satu proses dari 1500 tersebut berhenti.

Bagaimana dengan Apache Worker? Perhatikan pada konfigurasi di bawah ini :

image 3
Gambar 3. Konfigurasi Mode Worker

Dalam konfigurasi tersebut, tersedia daemon server sejumlah lima server. Sedangkan tiap server akan tersedia minimal daemon thread sebanyak 25, dan dapat hingga 75 jika dibutuhkan. Thread Limit akan menentukan jumlah maksimal Thread process yang akan dikerjakan. Tiap thread akan bertanggung jawab kepada sejumlah MaxClients.

Improve teknologi untuk terus tingkatkan layanan

Ketika layanan web server semakin banyak diakses oleh pengguna, perubahan dari mode default prefork menjadi worker menjadi sebuah kebutuhan. Seperti yang dilakukan Gamatechno di sisi layanan servernya. Mode worker saat ini sudah digunakan Gamatechno sebagai bentuk peningkatan layanan kepada ratusan perguruan tinggi yang menjadi client Gamatechno. Perubahan mode ini membuat Gamatechno menjadi lebih siap support concurent connection yang sangat mungkin terjadi dari kampus-kampus yang menggunakan produk Gamatechno. Info lebih lanjut tentang produk dan dukungan layanan Gamatechno, bisa di cek di www.gamatechno.com

Sumber image: www.technologydatagroup.com

Share:

KEPALA SMAN 95


Kepala SMAN 95 Jakarta

Dewi Elvi, S.Pd, M.Si

Profil SMAN 95

Pelepasan 2020