Membongkar cara meningkatkan performa server

Membongkar Cara Meningkatkan Performa Server

Sebelumnya kita sudah membahas pengertian dari server. Server sangatlah vital bagi sebuah bisnis. Saking vitalnya, performanya yang lambat dapat mengurangi revenue perusahaan. Performa lambat pernah dialami oleh beberapa perusahaan teknologi terkemuka di dunia, seperti Amazon, Apple, Facebook, dan Google. Akibat dari performa lambat tersebut menyebabkan kehilangan revenue jutaan dolar bagi perusahaan tersebut.

Tentu kamu tidak mau mengalami kehilangan revenue karena masalah performa server, bukan? Namun, sebelum membahas cara meningkatkan performanya, alangkah lebih baik kita mendefinisikan terlebih dahulu performa dan cara mengukurnya.

Performa

Performa merujuk pada kemampuan server dalam menangani permintaan/beban yang meningkat dengan resources yang ada (CPU, memori, network). Ia harus memiliki ketersediaan tinggi (highly available) dan berkinerja baik dalam menangani permintaan dari client tersebut. 

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Ketika ia tidak mampu merespons permintaan dengan cepat (slow down), hal itu menyebabkan berkurangnya kepuasan pengguna, kehilangan revenue, dan mengurangi retensi pelanggan. 

Penting untuk memastikan server merespons permintaan pengguna dengan cepat. Satu detik delay dapat menyebabkan turunnya kepuasan pengguna sebanyak 16% dan kehilangan jutaan dollar.

Monitoring Performa Server

Orang yang duduk di depan komputer dan melihat grafik/chart hasil dari monitoring server

Monitoring adalah proses untuk mengumpulkan, menggabungkan, dan menganalisis metrik, guna meningkatkan pemahaman terhadap sistem. Tujuan dari monitoring adalah untuk deteksi secara dini masalah performa sebelum berdampak ke user. 

Dengan melakukan monitoring penggunaan resources yang ada di server, resources dapat dipantau dan dikontrol. Jika terjadi masalah performa, dapat dilakukan tindakan pada resources tersebut. Tindakan yang dapat dilakukan yaitu meningkatkan spesifikasi atau mengurangi beban terhadap server yang menyebabkan masalah pada performanya. 

Performa yang lambat bisa disebabkan oleh banyak faktor, tetapi faktor yang paling berpengaruh terhadap kinerja server adalah penggunaan memori dan CPU. Jika performa melambat, kemungkinan besar disebabkan oleh penggunaan memori dan CPU yang hampir 100%.

Lalu, metrik apa yang digunakan untuk monitoring performanya? Berikut beberapa metrik yang umum digunakan.

  • Server Uptime
    Server uptime merujuk terhadap status server aktif dan dapat diakses oleh pengguna tanpa gangguan. Uptime diukur dalam persentase untuk jangka waktu harian, mingguan, dan bulanan. Sebagai contoh, jika memiliki uptime 99,9% dalam sehari, artinya server hanya tidak aktif atau mengalami downtime selama 1,44 menit.
  • Requests per Second (RPS)
    RPS adalah metrik yang mengukur jumlah request per detik yang diterima. Dengan mengukur RPS, kemampuan server dalam menangani request dapat diketahui sehingga kita bisa merencanakan skenario jika request tiba-tiba melonjak tinggi.
  • Disk Activity
    Ada banyak metrik yang berhubungan dengan disk activity, seperti disk busy time, disk write, dan disk read. Metrik ini penting untuk dimonitoring karena erat kaitannya dengan operasi database, seperti create, update, dan get data.

Oke, sekarang kita sudah punya data dan metrik dari hasil monitoring performa. Pada judul artikel ini ada kata “meningkatkan”, apakah hanya dengan monitoring, performa akan meningkat? Jawabannya adalah tidak. Lalu, apa yang akan kita lakukan setelah monitoring? 

Kita bisa melakukan alerting. Alerting adalah proses peringatan secara otomatis jika suatu kondisi terpenuhi. Misalnya, jika CPU server dikonsumsi melebihi 80%, peringatan akan dikirimkan ke tim yang menanganinya, seperti DevOps, dan infrastructure engineer. Dengan adanya alerting, tim bisa menangani masalah performa dengan lebih cepat.

Meningkatkan Performa

Alerting belum menjawab pertanyaan bagaimana cara meningkatkan performa server. Oleh karena itu, inilah cara meningkatkan performanya.

  • Load Balancing
    Load balancing visualization

    Load balancing (menyeimbangkan beban) adalah membagi trafik jaringan yang masuk ke sekelompok server. Beban yang diseimbangkan akan menjaga availability (ketersediaan) dan reliability (keandalan) dari aplikasi. Cara ini tepat digunakan jika performa lambat disebabkan oleh request yang masuk melebihi kemampuannya (kelebihan beban).
  • Optimize Query
    Optimize query adalah proses memperbaiki performa eksekusi query database. Tanpa disadari, menulis query database dapat menjadi salah satu penyebab performa melambat. Optimize query dapat berupa menulis ulang query yang ada saat ini atau mendesain ulang struktur tabel dan skema database.
  • Cache
    Cache adalah penyimpanan data yang sering digunakan pada memori yang bersifat sementara. Tujuannya untuk meminimalkan interaksi dengan sumber asli (seperti database atau server) bila terdapat request yang sudah pernah dilakukan sebelumnya. Permintaan yang sama akan disajikan dari cache ketimbang dari sumber aslinya, selama data tersebut sama. Contohnya, data yang pertama kali di-request ke server akan disimpan di RAM dan selanjutnya data tidak akan di-request lagi, tetapi dari cache. Keuntungan utama dari caching adalah meningkatkan kinerja dengan mengurangi beban pemrosesan.

Jadi, itulah cara meningkatkan performa server. Sebelum meningkatkan performanya, tentunya kita harus tahu terlebih dahulu mengenai definisi performa, metrik yang digunakan, dan cara mengukurnya. 

Tentunya cara meningkatkan performa tidak sebatas yang dicantumkan dalam artikel ini, ada berbagai cara lain yang bisa dilakukan sesuai dengan kasus yang dialami. Sampai jumpa di artikel selanjutnya! See you!


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.