Langkau ke kandungan utama

Redis server timeout error apabila connection menjangkau 1.02K

Assalamualaikum

Sepanjang ditugaskan untuk menjada server sistem dokumen klinikal untuk klinik buah pinggang, ada banyak masalah yang dihadapi oleh server apabila sistem 'agak' berat digunakan. Namun pada relatifnya, penggunaannya adalah sangat rendah kerana jumlah pengguna atau doktor yang merawat pesakit pada waktu klinik tidak mencecah sehingga 30 orang.

Akan tetapi, aplikasi sistem klinikal renal telah beberapa kali memaparkan error dengan mesej-mesej dalam log yang agak kabur. Connection time out berlaku apabila redis membuat arahan "set" untuk menyimpan data dalam memori.

Redis::TimeoutError (Connection timed out):
  lib/husm/api.rb:46:in `save_key'
  lib/husm/api.rb:25:in `request'

Jumlah keseluruhan ram dalam server adalah 8GB dan pada ketika berlaku error ini, jumlah penggunaan ram oleh redis hanyalah 500MB.

Sumber yang sangat tinggi digunakan oleh redis adalah CPU pada ketika error ini berlaku.


Setelah membuat sedikit carian menerusi google, terjumpa satu alatan untuk membuat pemantauan terhadap operasi redis iaitu redis-stat. Redis stat akan memantau operasi redis setiap saat. Dengan melarikan arahan redis-stat --server, satu aplikasi laman web akan dijalankan dan boleh diakses menggunakan pelayar.

redis-stat --server



Setelah beberapa ketika, apabila pengunaan sistem agak tinggi iaitu pada hari klinik pakar nephro, sistem akan memaparkan error dan tidak dapat digunakan buat beberapa ketika. Didapati, jumlah 'cl' pada redis-stat mencapai 1.02k dan tidak pernah lebih daripada itu.

Oleh itu, aku jatuh syak pada had open-files dalam sistem linux yang biasanya disetkan kepada 1024 secara default. Sekali lagi carian dibuat dan mendapati cara untuk meningkatkan had open-files pada aplikasi redis adalah dengan memasukkannya dalam script service.

1. sudo nano /etc/default/redis-server

2. tambah / uncomment
   ULIMIT=65536


3. Restart redis-server
   sudo service redis-server restart



Apabila aplikasi berat, jumlah sambungan kepada redis menjadi tinggi namun tiada lagi mesej error Redis::TimeoutError dan jumlah cl pada redis stat menjadi lebih tinggi daripada 1.02k.

Setakat ini, sistem masih lagi bertahan namun masih lagi terdapat ralat pada nginx itu sendiri (upstream timeout error)


Satu lagi misteri untuk dirungkaikan.. 










Ulasan

Catatan popular daripada blog ini

Apa Maksud RON dalam pengkelasan Petrol?

RON dan Petrol Oleh yusdirman, Oktober 2014 RON adalah singkatan daripada Research Octane Number Ianya kaedah penarafan bahan api. Lebih tinggi nilai RON, lebih mahal harga PETROL. Adakah minyak RON 97 lebih berkuasa berbanding RON 95? RON merujuk kepada tahap bahan api menahan rintangan "ketukan" semasa proses pembakaran oleh palam pencucuh dalam enjin. Ianya merujuk kepada tahap ketahanan bahan api untuk tidak terbakar sebelum dinyalakan oleh palam pencucuh dalam enjin. "ketukan" dalam konteks RON ini adalah apabila campuran bahan api dan udara dalam enjin terbakar lebih awal sebelum api dari palam pencucuh menbakarnya. Pembakaran awal ini mungkin disebabkan enjin terlalu panas. Haba dari silinder enjin itu sendiri mungkin telah menyalakan bahan api sebelum palam pencucuh menyala. Ini boleh menurunkan prestasi dan mungkin boleh memudaratkan enjin! Jadi, RON bukannya bermaksud LEBIH KUASA! Ianya bermaksud bahan api itu dapat menahan tekanan dari...

Rokok Elektronik : Bahaya Untuk Kesihatan atau Membantu Perokok Berhenti Merokok?

Rokok Elektronik, e-rokok -- oleh Ahmad Yusdirman Rokok elektronik adalah nama panggilan kepada alat yang membekalkan dos nikotin dalam bentuk wap dengan memanaskan cecair campuran propylene glycol, glycerol, perasa makanan dan nikotin menjadikannya berbentuk wap dan disedut oleh pengguna. Alat ini memberikan perokok yang ingin berhenti merokok masih mendapatkan dos nikotin dan masih lagi dapat menikmati aktiviti merokok kerana wap yang dikeluarkan adalah kelihatan seumpama asap rokok. Terdapat beberapa nama panggilan untuk rokok elektronik ini termasuklah eRokok, vapor dan ecig. Namun, oleh kerana panggilan rokok elektronik masih menggunakan perkataan 'rokok', ianya masih lagi memberikan stigma kepada masyarakat yang tidak tahu mengenainya. Panggilan 'vapor' yang bermaksud 'wap' adalah lebih ringan diterima masyarakat. Sejarah Rokok elektronik pertama sekali diperkenalkan oleh Herbert A. Gilbert pada tahun 1963[1] namun tidak dikomersilkan dan k...

Server Redundancy - Pertindanan Komputer Pelayan

alkisahnya tercari-cari untuk buat server redundancy ( pertindihan komputer pelayan ) atas sebab perlunya server yang sentiasa on-line tanpa ada downtime yang lama. Dan, cabarannya adalah memang kami tak pernah jalani apa-apa latihan, pengalaman dan apa jua pengetahuan berkenaan teknologi ini. Yang pastinya, perlu banyak mengoogle. Setakat ini, ada banyak kaedah untuk memastikan aplikasi masih terus boleh berfungsi walaupun server mati/rosak. 1. guna 2 server yang sama. Bila satu mati, satu lagi yang masih hidup dapat terus melayan pengguna. 2. guna 2 talian rangkaian yang berbeza. Bila satu talian rosak/putus, masih ada satu lagi talian rangkaian yang berfungsi. 3. storan di server guna raid ( redundant array of independent disk ) atau dalam bahasa melayu : barisan disk berlainan yang bertindan. Raid dapat menjadikan sebilangan hd menjadi 1 dengan semua data pada 1 hd adalah sama dengan data pada hd 2. (mirroring) 4. satu IP maya untuk sebilangan server. 2 server yang mena...