September 10, 2012

Memperbaiki Erorr Tomcat Java Lang OutOfMemory

Pernahkan kawan mengalami Apache Tomcat Server yang mendadak Down ketika banyak akses atau traffic yang masuk, dan kita harus me-restart untuk membuatnya Up kembali, tetapi kejadian tersebut terus berulang sehingga mengakibatkan server tidak berjalan normal, dan ketika cek kedalam log ditemukan error yang berbunyi "java lang OutOfMemoryError".

Dari kejadian diatas dapat disimpulkan bahwa sudah tidak ada lagi memori yang tersedia dan bisa digunakan oleh tomcat server untuk menjalankan proses, mungkin kawan sudah dapat menebak solusinya yaitu dengan menaikkan memori yang disediakan oleh sistem operasi untuk menjalankan proses tersebut, kata lainnya adalah kita harus menaikkan heap memori yang tersedia untuk server tersebut.

Seperti kawan ketahui secara default memori yang dapat digunakan oleh tomcat adalah 32 MB sampai dengan 64 MB, yah itulah besaran yang akan digunakan jika kita tidak mengkonfigurasinya dalam file konfigurasi tomcat, untuk itu bukalah file catalina.sh, letaknya ada di /path-to-tomcat-server/bin/catalina.sh
lihat pada baris seperti dibawah:

 # vi /path-to-tomcat-server/bin/catalina.sh

# Get standard environment variables
PRGDIR=`dirname "$PRG"`
CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
  . "$CATALINA_HOME"/bin/setenv.sh
fi

Terlihat pada file konfigurasi server memanggil file bernama setenv.sh pada direktori /path-to-tomcat-server/bin/setenv.sh, pada konfigurasi default file tersebut tidak ada jadi server memang hanya dapat menggunakan memory sebesar yang disebutkan diatas, untuk menambahkannya kawan tinggal membuat file tersebut dan menyimpannya pada direktori yang dimaksud.

# vi /path/to/tomcat/bin/setenv.sh

JAVA_OPTS=” -Xms32m  –Xmx512m –Xss512k $JAVA_OPTS –Djava.awt.headless=true”

Pada konfigurasi diatas heap memory yan disediakan adalah minimal sebesar 32 MB dan maksimal 512 MB, asumsi memori yang tersedia pada server 1 GB, kawan dapat menyesuaikan dengan fisik memory yang ada dalam server, setelah itu simpan dan restart service tomcat server.

Pengalaman penulis sendiri setelah menambahkan file setenv.sh tersebut adalah tomcat server menjadi lebih stabil dan dapat melayani ribuan transaksi yang masuk dalam satu harinya, tidak ada lagi server down atau crash, mudah-mudahan hal ini dapat berjalan terus sampai saatnya upgrade server ..... Amin.

Jika kawan punya pengalaman lain atau punya solusi lain yang lebih bisa membuat tomcat berjalan lebih stabil dan dapat melayani lebih banyak transaksi yang berjalan dalam satu harinya, share-lah di sini dengan meninggalkan komentar, supaya bisa menjadi pandangan yang baik bagi pembaca yang lain.

Demikianlah, Terima kasih.

2 comments:

  1. untuk yg d tomcat ver 8 gmn caranya?

    ReplyDelete
    Replies
    1. Kalau errornya sama, tinggal ubah aja file setenv, biasanya ada di folder bin dalam tomcat direktori, sesuaikan sama besaran fisik ram servernya

      Delete