- pak, saya mau tanya. Saya menggunakan aplikasi adempiere di server 2003 dan database adempiere di centos 5.3. Namun akhir-akhir ini sering sekali terjadi kasus dimana end-user selalu menunggu waktu yang lama hanya sekedar untuk meng-save laporan. setelah saya cek tidak ada yang aneh dalam sistem linux dan windows. Memori di kedua server tersebut masih tersisa sangat banyak. Kira-kira apa pak penyebabnya?
Terima Kasih pak atas jawabannya
Mas Arfie, untuk menjawab pertanyaan anda secara akurat tentu diperlukan pengecekan secara lebih detil terhadap kondisi ADempiere server anda, jaringan dan lain sebagainya. Dengan asumsi ADempiere server anda tidak sedang bermasalah dan jaringan anda dalam kondisi baik dan wajar, maka ada beberapa hal yang perlu anda bisa lakukan diantaranya dengan meningkatkan kecepatan akses storage anda dengan menggunakan RAID (apabila belum), apabila sudah menggunakan RAID, anda bisa evaluasi dan bila mungkin gunakan metode yang lebih effisien dan lebih cepat sesuai kebutuhan anda. Mengenai RAID sudah saya bahas di link berikut : http://blog.alphamedia.co.id/2011/07/raid-system-untuk-adempiere-server.html
Yang kedua, aplikasi ERP terkenal dengan aplikasi yang sangat rakus terhadap resource, memory dan storage. Sehingga anda harus secara rutin memantau kondisi ADempiere server anda, apakah memory masih mencukupi, apakah storage masih mencukupi dan seterusnya.
Untuk melihat memory pada Server windows, anda bisa melihat dari properties dan windows task manager, sedangkan untuk Linux Centos anda bisa lakukan sebagai berikut:
Check Total Memory di Linux
Pertama check physical memory yang tersedia di komputer anda dengan cara sebagai berikut:
#dmesg |grep memory
Untuk melihat memory yang masih tersedia di linux anda bisa menggunakan perintah berikut:
#free -m
Atau anda juga bisa melihat penggunaan memory dari masing masing aplikasi serta memory yang masih tersedia dengan perintah berikut:
#top
Apabila memory pada komputer anda sudah tidak mencukupi, ada beberapa hal yang bisa anda lakukan, yang pertama adalah menambah physical memory anda, dan yang kedua adalah memperbesar swap file pada komputer anda (apabila penambahan physical memory tidak mungkin dilakukan)
Memperbesar Swap File di Linux
Apa yang harus dilakukan ketika anda membutuhkan untuk menambah swap file pada Linux Server anda? ada 4 pilihan yang dapat anda lakukan sebagai berikut:
1. Membuat swap file Baru
2. Membuat swap file pada existing logical volume
3. Meng Extend swap file pada existing logical volume anda
4. Membuat partisi swap baru
Jika anda membutuhkan space swap file yang lebih besar, membuat swap file baru adalah solusi tercepat dan termudah. Melakukan swap file pada logical volume dan meng extend swap file pada logical volume merupakan langkah yang lebih sulit. Sedangkan mebuat partisi swap baru merupakan langkah yang paling sulit, namun memberikan solusi yang lebih effektif dan permanen.
Pada kesempatan ini saya akang menerangkan cara membuat swap file baru sebagai cara termudah dan tercepat untuk memperbesar ruang swap file anda.
Membuat Swap file baru
Kita perlu menentukan tambahan ruang swap file yang kita butuhkan. Mari kita asumsikan kita memerlukan 512 Megabytes swap space. Untuk menentukan jumlah blok kita perlu mengalikan ukuran file dengan 1024. Sehingga pada contoh kita adalah 512 x 1024 = 524288. Maka kita perlu menjalankan perintah sebagai berikut:
dd if=/dev/zero of=/home/swapfile bs=1024 count=524888
Posisi letak file di /home/swapfile hanyalah sebagai contoh, anda dapat meletakkan ditempat lain untuk alasan security dan lain lain. Kemudian anda dapat melakukan setup swap file dengan perintah
mkswap /home/swapfile
Swapfile yang anda buat diatas belum akan enable pada saat anda melakukan booting system. Untuk membuatnya enable pada saat booting, anda perlu menambahkan kedalam /etc/fstab/ dan baris berikut kedalam file /etc/fstab anda:
/home/swapfile swap swap defaults 0 0
Melakukan Housekeeping database
Untuk pengguna adempiere yang sudah menggunakan system lebih dari 2th umumnya, ukuran database menjadi sangat besar sehingga menjadi berat dan lambat. untuk menghindari hal tersebut perlu dilakukan housekeeping / pembersihan terhadap data data yang tidak / kurang diperlukan seperti data log, data temporary, data yang expired dll. Dimana terkadang data data tersebut ukurannya sangat besar.
Untuk itu ada perlu mengecek ukuran database secara berkala. Untuk mengetahui ukuran database postgreSQL serta ukuran masing masing table, anda bisa menggunakan script sebagai berikut:
SELECT
schema_name,
relname,
pg_size_pretty(table_size) AS size,
table_size
FROM (
SELECT
pg_catalog.pg_namespace.nspname AS schema_name,
relname, pg_relation_size(pg_catalog.pg_class.oid) AS table_size
FROM pg_catalog.pg_class
JOIN pg_catalog.pg_namespace ON relnamespace = pg_catalog.pg_namespace.oid
) t
WHERE schema_name NOT LIKE 'pg_%'
ORDER BY table_size DESC;
Untuk table yang berisi log seperti ad_issue, ad_wf_eventaudit, ad_wf_activity, ad_changelog dll dimana anda dapat mengecek table mana yang ukuruannya cukup memberatkan.
anda dapat melakukan backup terhadap table ini dengan perintah:
#pg_dump -d nama_database -t nama_table > nama_file.sql
anda dapat menyimpannya sebagai backup dan ketika diperlukan anda dapat restore kembali isi table dengan perintah:
#pg_restore -U username -d namadatabase -t nama_table nama_fie.sql
dengan semakin kecilnya ukuran database maka umumnya kecepatan database juga akan meningkat.
selain itu tentu saja anda juga harus rutin melakukan perawatan terhadap database anda ( dengan menjalankan vaccum database dll).
Demikian kira kira ulasan saya untuk mebantu masalah kecepatan ADempiere server anda, apabila semua upaya sudah dilakukan dan server anda tetap masih lambat, bisa jadi memang sudah saatnya anda membeli server yang lebih besar.
Salam ERP
Agung Budi Santosa
agung_bs@yahoo.com
Jakarta - Indonesia
=======================