Linux Inspirations

Agar si Apache kuat perkasa

Posted on: 26 Januari, 2010

Menyambung tulisan sebelumnya tentang Apache, berikut adalah tulisan ringan bagaimana agar Apache tetap perkasa walaupun akses di website kita yang semakin meningkat.
Kalau website anda memakai Apache sebagai webserver, dan mempunyai akses yang cukup tinggi setiap harinya, maka anda akan menemukan rata-rata load CPU anda akan semakin tinggi.
Apalagi kalau anda memakai sistem CMS dalam konten anda, yang menggabungkan PHP dengan MySQL atau PHP dengan PostgreSQL, maka proses di server anda akan dipenuhi oleh proses Apache dan MySQL.

Bagaimana agar Apache kita tetap kuat dan perkasa dengan akses yang semakin meningkat ini ?
Nah, di sini penulis akan kenalkan satu kata, yaitu “tuning”. Tuning bertujuan agar segala sesuatu berjalan sesuatu dengan kondisi optimum, barang yang tidak perlu kita buang, yang diperlukan kita efisienkan.
Ada beberapa point yang perlu kita perhatikan ketika kita akan men-tuning Apache.

Buang module yang tidak dipakai
Apache menyediakan banyak sekali modul yang siap untuk dipakai sesuai dengan kebutuhan kita.
Nah, ternyata sebenarnya banyak sekali modul yang tidak kita pakai, akan tetapi tetapi berjalan di apache. Bagaimana cara mengetahuinya bahwa kita memakai beberapa modul apache ?
Silakan jalankan perintah berikut ini di server anda.

# /usr/sbin/httpd -l

Tergantung letak apache anda, masing-masing OS mungkin akan berbeda letak binary httpd.
Akan muncul module-module Apache bukan ? Modul-modul ini adalah modul yang sifatnya sudah menempel pada engine Apache, jadi tidak bisa kita tambahi atau kurangi. Modul-modul ini diberi nama SO module.

# /usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

Ada modul yang dapat kita tambahi atau kurangi dengan memakai option LoadModule di httpd.conf. Modul ini diberi nama DSO module. Anda dapat ketahui modul-modul ini dengan melihat isi file /etc/httpd/conf/httpd.conf nya di baris berikut ini.

[root@ns3 ]# cat /etc/httpd/conf/httpd.conf | grep LoadModule
# have to place corresponding `LoadModule' lines at this location so the
# LoadModule foo_module modules/mod_foo.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
#LoadModule asis_module modules/mod_asis.so

Banyak sekali bukan ? mungkin anda tidak mengenal pemakaian modul-modul ini, karena itu anda dapat melihatnya di
URL apache di http://httpd.apache.org/docs/2.2/mod/ atau http://httpd.apache.org/docs/2.0/mod/.
Ketika Apache kita jalankan di server, maka otomatis Apache akan membaca modul-modul ini. Otomatis semakin banyak modul yang kita pasang di httpd.conf, maka akan semakin banyak memori yang dipakai oleh Apache untuk menjalankan satu proses.
Karena itu, agar memori anda tidak terlalu terpakai oleh Apache ini, salah satu jalannya adalah hapus modul-modul yang anda rasakan tidak dipakai. Caranya ? kasih tanda # saja di depan baris di kata LoadModule.

Misalnya :

LoadModule actions_module modules/mod_actions.so di ubah sebagai berikut ini,

#LoadModule actions_module modules/mod_actions.so

Dan jangan lupa, untuk mengaktifkan setting yang baru, restart atau reload Apache anda.
Coba anda kurangi satu persatu, nanti anda akan dapat melihat proses Apache anda akan semakin joss!!

Matikan proses DNS
Setiap ada akses ke website anda, maka Apache akan mempunyai beberapa proses yang harus dikerjakannya. Antara lain adalah DNS proses.
Misalnya adalah untuk mengetahui dari domain mana seseorang mengakses website anda. Informasi ini diperlukan ketika Apache harus menuliskan data-data ini di access_log. Nah kalau anda tidak terlalu berfikir serius dengan nama-nama domain pengakses website anda, maka matikan saja proses DNS di apache ini. Caranya ? Mudah sekali.
Di dalam file httpd.conf akan ada option HostnameLookups, dan matikan option ini dengan memberikan nilai off.

HostnameLookups off

Jangan lupa restart Apache anda.

Seandainya anda menghendaki hanya file-file tertentu saja yang boleh memakai proses DNS, misalnya file CGI atau PHP, maka anda dapat memberikan tambahan setting seperti berikut ini.


HostnameLookups on

Setting ini akan membolehkan proses DNS untuk file-file yang mempunyai ekstension php dan cgi.

Matikan proses pencarian file .htaccess
Kalau anda familier dengan Apache, maka anda mungkin pernah mengenal file .htaccess ya ? Nah untuk menentukan apakah di dalam direktori itu ada file .htaccess atau tidak, ternyata Apache juga memerlukan waktu untuk mencari file ini.
Nah kalau anda yakin, bahwa di direktori anda tidak ada file .htaccess maka, matikan saja pencarian file ini dengan memberikan option seperti di bawah ini di httpd.conf anda.

AllowOverride None

Tapi ingat, kalau anda mempunyai file .htaccess di direktori anda, dan anda memakai setting di atas, maka file .htaccess akan tidak dibaca oleh Apache.

Memisahkan harddisk untuk log dan konten
Kalau anda mempunyai harddisk dua di server anda, maka dengan mengoptimalkan keduanya untuk log dan satunya lagi untuk konten, adalah cara yang tepat untuk mempercepat proses Apache di hardisk anda.
Setiap ada akses ke website anda, maka Apache akan menjalankan proses di harddisk.
Nah kalau anda membagi proses pencatatan di log dan proses pembacaan konten, maka proses Apache akan semakin cepat.

Matikan log
Kalau anda yakin bahwa anda tidak memerlukan pencatatan log di Apache anda, maka mematikan pencatatan setiap proses di log akan mempercepat proses Apache anda. Bagaimana caranya untuk mematikan pencatatan log ini ? Kasih tanda saja # di awal CustomLog dan restart Apache anda.

#CustomLog logs/access_log common

Mudah bukan ?

Perhatikan KeepAlive
Kita anggap saja satu sambungan ke satu halaman berupa satu file akan diproses oleh satu proses Apache.
Kalau kita mengakses halaman URL yang mempunyai beberapa file, maka otomatis akan memerlukan beberapa proses Apache. Kalau akses di website kita semakin tinggi, maka Apache akan kerepotan, karena satu akses dengan beberapa file harus menjalankan banyak sekali proses Apache.
KeepAlive adalah teknologi yang di miliki oleh Apache untuk memberikan tenggang waktu agar proses dari suatu client tidak langsung di putus. Satu halaman URL terkadang berisi dari beberapa file. Ini artinya satu halaman akan timbul lebih dari satu permintaan proses Apache.
Karena itu nilai KeepAlive akan memberikan keleluasaan bagi Apache untuk menentukan apakah perlu menjalankan proses yang baru atau masih bisa memakai proses yang sekarang ada untuk memenuhi permintaan akses dari satu client.
Nah kalau anda tertarik dengan tuning Apache, silakan anda pelajari lebih dalam tentang KeepAlive ini. Termasuk pelajari juga istilah MaxKeepAliveRequests dan KeepAliveTimeout.

Perhatikan nilai MaxClients
MaxClients adalah nilai yang akan membatasi jumlah proses yang boleh dijalankan oleh Apache.
Sudah tentu semakin banyak proses yang dapat dijalankan akan semakin bagus. Akan tetapi sudah jelas juga, memori dan resource server anda akan termakan oleh Apache. Padahal anda harus menjalankan juga MySQL atau software lainnya.
Cari nilai optimum buat MaxClient anda dengan memperhatikan berapa besar memori yang anda miliki.
Kalau anda mempunyai memori yang besar, sedangkan akses website anda sangat sibuk, anda dapat menaikkan nilai MaxClients ini lebih tinggi.
Secara default biasanya nilai MaxClients adalah 150.

Banyak sekali cara untuk men-tuning Apache, semoga tulisan singkat ini dapat memberikan tambahan pencerahan untuk mencoba men-tuning Apache anda agar lebih kuat perkasa.

Tulisan ini juga dimuat di warnaislam.com.
http://warnaislam.com/rubrik/teknologi/2008/11/15/0/Agar_si_Apache_Kuat_Perkasa.htm

Source : http://infokomtek.com/linux-software/agar-si-apache-kuat-perkasa

google_protectAndRun(“ads_core.google_render_ad”, google_handleError, google_render_ad);

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

ABout Me!


WordPress ini sengaja saya buat untuk menulis apa yang telah saya lakukan agar saya selalu ingat, tulisan yang saya buat kebanyakan dalam bentuk tutorials configurasi linux dari hasil uji coba saya dan sebahagian di kutip dari beberapa website lain yang saya anggap perlu untuk saya tulis disini. Mudah-mudahan tutorial yang saya buat ini berguna buat pencinta linux yang lain. Salam Sejahtera.

Blog Stats

  • 120,467 hits

Linux Inspiration

%d blogger menyukai ini: