Kategori Permasalahan Pada Aplikasi - Consistent

Hasil gambar untuk Consistent diagram
Kategori permasalahan aplikasi pernah saya tampilkan pada artikel saya sebelumnya.
ada 4 kategori permasalahan pada aplikasi:

1.Consistent    Ã Selalu muncul. Masalah tidak menjadi lebih baik atau buruk
2.Progressive  àMasalah selalu muncul dari waktu ke waktu
3.Sudden         Ã Muncul tanpa peringatan dan tidak mudah diprediksi
4.Periodic        Ã Masalah kadang muncul dalam interval waktu tertentu


Pada artikel ini saya akan coba bahas kategori permasalahan aplikasi yang Consitent.

CONSISTENT
Consistent Problem didefinisikan sebagaiaplikasi lambat yang konsisten
Aplikasi yang lambat secara konsisten lamban terlepas dari beban pada server.
  • Masalahnya bukan penggunaan atau alokasi yang terkait, 
  • Menambahkan sumber daya pada hardware tidak menyelesaikannya. 
  • Restart server tidak membantu, 
  • Konfigurasi aplikasi seting tidak ada yang salah.
Pada dasarnya, hasil aplikasi yang konsisten lambat adalah dari arsitektur aplikasi atau masalah eksternal ke server aplikasi.

Penyebab Potensial dari Consistent Problem
Consistent Problem disebabkan oleh Metric Signature sebagai berikut:
  • Terlalu banyak layer antar komponen (Too many layers)
  • Overuse external system 
  • Respon lambat dari Backend system 
  • Code yang tidak effesien
Sebagian besar masalah ini muncul di bagian front atau backend sistem. Pengecualian untuk kategori ini adalah jaringan yang terbebani yang terjadi di depan server aplikasi.

1. Terlalu banyak layer antar komponen
Layer didefinisikan sebagai objek yang melakukan terjemahan antara dua object lain yang perlu saling berkomunikasi satu sama lain.

Terlalu banyak Layer diantara komponen dapat menyebabkan behavior lambat yang konsisten, seperti:
  • CPU atau memory naik 
  • Setiap request diterjemahkan beberapa kali sebanyak jumlah layer 
    •  Contoh: Hasil query SQL diserialkan ke dalam XML, disempurnakan dengan menggunakan XSLT, dibaca oleh Layer Management data, dan kembali ke EJB sebagai sebuah array.
Masalah dengan memiliki begitu banyak standard layer yang berbeda adalah kadang kala sebuah program perlu menerjemahkan satu standard ke standard lainnya dan kemudian kembali lagi. hal ini meyebabkan lambatnya respon suatu aplikasi.

Metric dibawah ini mengindikasikan jika problem ada karena terlalu banyak layer diantara komponen:
  • “Metrics With Increased Value” terjadi karena layer yang berlapis membutuhkan tambahan response time.
  • Deadlock dicurigai bila metrik Availability turun ke nol. Ini menunjukkan bahwa “Lock“ tidak dilepaskan. Bila nilai Availability sama dengan nol, server aplikasi tidak dapat melakukan pekerjaan. Aplikasi idle akan menunjukkan tingkat metrik utilisasi CPU yang rendah secara normal. 
  • Selain metrik ini, nilai metrik “Concurrent Invocation” akan meningkat menjadi jumlah maksimum, seperti yang ditentukan dalam pengaturan konfigurasi server aplikasi. 
  • Karena metoda tidak responsif terhadap komponen deadlock, perhitungan jumlah “Stall” juga akan meningkat dan plateau (dataran tinggi).
Pengelolaan Incident Management yang disebabkan Too Many Layers digambarkan seperti diagram dibawah ini:
Masalah akibat terlalu banyak layer (Too Many Layers) adalah masalah kode. Bergantung pada sifat terjemahan atau konversi data, mungkin ada cara alternatif untuk mengadukan data masuk dan keluar dari format yang berbeda. Alternatif ini dieksplorasi oleh pengembang atau arsitek. Dengan demikian, dokumentasi yang dibuat untuk masalah seperti itu diarahkan ke anggota tim yang bertanggung jawab terhadap kode aplikasi dan desain.

2. Overuse External System
  • Biasanya ini terjadi jika Backend system dipanggil beberapa kali dari object atau source yang berbeda. 
  • Indikasi dari kasus ini adalah: 
    • Penyalahgunaan backend system 
    • Terlalu banyak request, sebagai contoh: 
      • Menggunakan LDAP terlalu sering untuk menampilkan credential 
      • Mengirimkan email ke banyak user
Metric dibawah ini mengindikasikan jika problem ada karena terlalu banyak layer diantara komponen:
  • Peningkatan terkait pada metoda pemanggilan external system 
  • Metric Response per Interval meningkat untuk membuat panggilan suatu komponen 
  • Beberapa panggilan backend ditampilkan dalam transaction trace.
  • Karakteristik Metric signature dari kelebihan penggunaan sistem eksternal Repsonse per Interval meningkat tinggi. 
  • Selain itu, Concurrent Invocations dalam komponen membuat panggilan ke sistem eksternal semakin meningkat. 
  • Karena permintaan ini memakan waktu lebih lama untuk dilakukan karena backend yang terbebani, nilai Availability juga akan menurun.
Pengelolaan Incident Management yang disebabkan Overuse of External System digambarkan seperti diagram dibawah ini:
Meskipun tidak selalu menjadi kasus, overuse pada sistem eksternal sering diselesaikan melalui beberapa jenis solusi caching-dengan asumsi bahwa sistem eksternal menyediakan data yang tidak sensitif terhadap waktu.

3. Respon Lambat dari Backend System
Berdasarkan survey, penyebab sebagian besar masalah performa adalah backend system misalnya database.

Jika query tertentu yang menyebabkan turunnya performa, maka tidak ada perubahan ke server aplikasi yang bisa memperbaiki situasi.
Jika Problem dikarenakan Query Statement itu sendiri, maka diperlukan perubahan atau improvement.
Metric dibawah ini mengindikasikan jika problem ada karena terlalu respon lambat dari Backend System adalah:
  • Metric Stall Count meningkat jika bottleneck cukup buruk
  • Metric Concurrent Invocation meninggkat
  • Slow response time mengidentifikasi sebuah slow backend system
  • Sebagai tambahannya, Stall Count, Average Response Time (ms), Concurrent Invocation metrics dari komponen akan menjadi tinggi daripada metric lainnya.
Pengelolaan Incident Management yang disebabkan respon lambat dari Backend System digambarkan seperti diagram dibawah ini:

Hasil slow backend system biasanya disebabkan oleh 2 penyebab:
  1. Backend itu sendiri. Contohnya database: mungkin membutuhkan upgrade atau bug fix untuk membuat query tertentu berjalan baik. Untuk itu diperlukan backend administrator / DB administrator.
  2. Application code dan strategi digunakan untuk meng-ekstrak informasi. Contoh database lagi: satu dapat menulis SQL query dengan berbagai cara, beberapa diantaranya tidak bisa berkinerja memadai. Untuk itu diperlukan developer atau architect untuk menyempurnakan.

Posting Komentar

My Instagram

Designed by OddThemes | Distributed by Blogger Themes