[Tips] Menyiasati Load Tinggi Server Akibat Beban Proses Aplikasi Web (server sendiri)

Bagi anda yang berkecimpung dengan blog atau web dengan memanfaatkan CMS di hosting entah Hosting, VPS, Dedicated Server, Colocation Server sampai server Mandiri, tentu akan sering merasakan betapa CMS kita akan sangat berat diload. Sebagai tambahan informasi, bahwa beberapa CMS terutama WordPress dan Joomla memiliki dukungan plugins yang justru ketika kita gunakan plugins tersebut, akan memakan resource server kita sendiri. Akibatnya, load server terutama ketika memasuki halaman administrator, akan sangat berat loadnya. Untuk pengguna layanan hosting, akibat load server tersebut, atau proses hit ke luar server yang terlalu tinggi, bisa berakibat pada pemblokiran aplikasi kita sendiri. Pernah mengalami? Terutama biasanya terjadi pada CMS-CMS yang menggunakan plugins–plugins untuk SEO (Search Engine Optimizer) aktif. Aktif dalam hal agresif melakukan hit ke luar server kita sendiri.

Artikel ini sementara saya tulis untuk menyiasati Load server Linux non Hosting, dimana kita masih memiliki akses kontrol cukup, terutama untuk melakukan rekonfigurasi apache. Saya menggunakan layanan VPS dengan memori maksimal 512 dengan normal 256. Beban server adalah sistem-sistem informasi dan demo, serta blog-blog serta web dengan CMS dengan plugins yang cukup menguras memori.

Berikut pengalaman saya untuk usaha menurunkan load ketika memori begitu terbatas, cpu juga terbatas. Saat itu saya dan teman saya memang mengeluhkan beratnya server untuk diakses bersamaan, terutama update blog. Ketika proses akses ke CMS (terutama administrasi, posting dll) terasa berat, saat itu saya menggunakan akses ke console (command line) melakukan monitoring proses dengan perintah “top”.

top

Contoh penggunaan perintah top. (tidak kondisi sebenarnya)

Suatu ketika terlihat pada bagian atas tabel, Mem dan Swap, kehabisan memori free. Saat memory free tersebut kecil, maka load server akan terasa berat. Ketika akses web dari pihak client semakin banyak maka memori free akan makin habis. Padahal biasanya kita membutuhkan banyak jumlah pengunjung. Lha kok malah mendem? Ketika load server tinggi ditandai dengan mem free tinggi, perhatikan pada urutan %CPU dan %MEM. Biasanya saat itu apache/httpd dan mysql atau database server anda akan sangat memakan %CPU dan %MEM yang cukup tinggi. Proses memori tinggi ini akan turun dalam beberapa menit. Padahal kita membutuhkan secepatnya turun.

Dulu saya menggunakan siasat ini : http://bimosaurus.com/2012/07/23/clear-memory-linux-tanpa-restart . Namun untuk proses web application, cara ini memang menurunkan load namun tidak begitu signifikan. Akhirnya saya pun menggunakan teknik lain. Dengan mencoba restart apache, ternyata load server langsung turun ditandai dengan turunnya Memori tergunakan oleh httpd dan mysql. Namun dengan menggunakan httpd restart, akan memutus akses client sementara yang kadang justru akan berbuah error ketika saat diakses pas terjadi off server. Akhirnya saya mencoba bereksperimen menggunakan satu shell yang saya letakkan dalam sebuah script:

Saya letakkan shell tersebut dalam sebuah file dengan path : /opt/http-reconfigure, tak lupa saya berikan kode:

Saya pun menggunakan crontab untuk menjalankan file tersebut secara berkala lima menitan:

httpd reconfigure adalah suatu proses melakukan reload konfigurasi httpd/apache tanpa melakukan restart. Sehingga akses dari client tidak mengalami putus sessaatpun.

Proses tersebut saya monitor selama beberapa hari dengan kontrol akses server baik log maupun netstat, ternyata cukup efektif. Saat load meninggi, belum mencapai puncak, waktu telah memasuki 5 menit dan mereload apache. Free memori pun kembali berlimpah. Saya memasang cukup banyak aplikasi web dan CMS WordPress di server VPS tersebut. Server juga telah berjalan sekian lama, hingga kini free memori masih tetap terjaga.. Ya itu sekedar berbagi kenakalan saja.. semoga dapat bermanfaat. Atau ada yang memiliki cara lebih bagus? Silakah share disini :)

 

5 thoughts on “[Tips] Menyiasati Load Tinggi Server Akibat Beban Proses Aplikasi Web (server sendiri)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">