Tugas Pertemuan 11 PPL
Nama : Frederick Yonatan Susanto
NRP : 5025211121
Pada pertemuan kesebelas di kelas PPL A, kita diminta untuk meninjau sebuah aplikasi, kemudian melakukan estimasi kapasitas sistem yang dibutuhkan untuk mendukung aplikasi tersebut sehingga aplikasi bisa berjalan dengan baik.
Referensi artikel/jurnal yang saya ambil yaitu " System Design of Whatsapp".
Capacity Estimation
Estimasi kapasitas dalam desain sistem adalah proses memprediksi atau menentukan beban atau permintaan maksimum yang dapat ditangani suatu sistem dalam parameter operasionalnya. Ini melibatkan analisis berbagai aspek seperti kemampuan perangkat keras, kinerja perangkat lunak, bandwidth jaringan, dan pola perilaku pengguna.
Tujuannya adalah untuk memastikan bahwa sistem dapat mengakomodasi beban kerja yang diharapkan tanpa mengalami penurunan kinerja, kemacetan , atau kegagalan.
Faktor yang Mempengaruhi Kapasitas:
Estimasi kapasitas dalam desain sistem bergantung pada berbagai faktor, antara lain:
- Sumber Daya Perangkat Keras: Kemampuan komponen perangkat keras seperti prosesor, memori, perangkat penyimpanan, dan antarmuka jaringan berdampak langsung pada kapasitas sistem.
- Efisiensi Perangkat Lunak: Efisiensi algoritme perangkat lunak, struktur data, dan desain keseluruhan secara signifikan memengaruhi seberapa efisien sistem menggunakan sumber daya perangkat keras.
- Karakteristik Beban Kerja: Memahami sifat beban kerja, termasuk intensitas, variabilitas, dan periode puncaknya, sangat penting untuk memperkirakan kebutuhan kapasitas secara akurat.
- Perilaku Pengguna: Pola perilaku pengguna, seperti kebiasaan browsing, volume transaksi, dan tingkat konkurensi, memengaruhi kebutuhan kapasitas sistem.
- Skalabilitas: Kemampuan sistem untuk melakukan penskalaan, baik secara vertikal (menambahkan lebih banyak sumber daya ke satu node) dan horizontal (menambahkan lebih banyak node ke sistem terdistribusi), berdampak pada kapasitas keseluruhannya.
- Metrik Kinerja: Mendefinisikan metrik kinerja yang relevan seperti waktu respons, throughput, dan pemanfaatan sumber daya membantu dalam mengukur kebutuhan kapasitas sistem.
- Skenario Kegagalan: Mempertimbangkan potensi skenario kegagalan, seperti kegagalan perangkat keras atau pemadaman jaringan, sangat penting untuk merancang sistem dengan kapasitas yang memadai untuk toleransi kesalahan dan ketahanan.
Metrik untuk Estimasi Kapasitas:
Dalam desain sistem, beberapa metrik penting untuk estimasi kapasitas:
- Throughput : Tingkat di mana sistem dapat memproses permintaan atau transaksi selama periode tertentu. Hal ini menunjukkan kemampuan sistem untuk menangani volume pekerjaan tertentu secara efisien.
- Waktu Respons: Waktu yang dibutuhkan sistem untuk merespons permintaan atau menyelesaikan transaksi. Waktu respons yang lebih rendah umumnya lebih disukai karena menunjukkan kinerja sistem yang lebih baik.
- Pemanfaatan Sumber Daya: Memantau penggunaan sumber daya perangkat keras seperti CPU, memori, disk, dan bandwidth jaringan membantu dalam memahami seberapa efisien sistem menggunakan sumber daya yang tersedia.
- Konkurensi: Jumlah pengguna atau permintaan simultan yang dapat ditangani sistem tanpa mengalami penurunan kinerja. Tingkat konkurensi yang lebih tinggi berarti skalabilitas dan kapasitas yang lebih baik.
- Latency : Keterlambatan yang dialami pengguna saat berinteraksi dengan sistem. Ini mencakup latensi jaringan, latensi pemrosesan, dan penundaan antrian, dan latensi yang lebih rendah diinginkan untuk sistem yang responsif.
- Penanganan Beban Puncak: Beban atau lalu lintas maksimum yang dapat ditangani sistem selama periode penggunaan puncak tanpa penurunan kinerja atau kegagalan.
- Metrik Skalabilitas : Metrik seperti faktor skalabilitas, indeks skalabilitas, atau rasio skalabilitas mengukur seberapa efektif sistem dapat melakukan penskalaan dengan peningkatan beban kerja atau permintaan sumber daya.
- Panjang Antrian: Jumlah permintaan atau tugas yang menunggu dalam antrian dalam sistem. Memantau panjang antrian membantu mengidentifikasi potensi kemacetan dan mengoptimalkan kinerja sistem.
- Keberlanjutan: Menilai kapasitas sistem untuk mempertahankan tingkat kinerjanya dalam jangka waktu lama, dengan mempertimbangkan faktor-faktor seperti penipisan sumber daya, kelelahan, atau degradasi.
Capacity Estimation of WhatsApp
A. Traffic Estimation
Misalkan kita memiliki 50 juta pengguna aktif harian (DAU) dan rata-rata setiap pengguna mengirim setidaknya 10 pesan ke 4 orang berbeda setiap hari. Ini memberi kita 2 miliar pesan per hari.
Pesan juga dapat berisi media seperti gambar, video, atau file lainnya. Kita dapat berasumsi bahwa 5 persen pesan adalah file media yang dibagikan oleh pengguna, yang berarti ada tambahan 200 juta file yang perlu kita simpan.
Apa yang dimaksud dengan Permintaan Per Detik (RPS) untuk sistem kami?
2 miliar permintaan per hari berarti 24 ribu permintaan per detik.
B. Storage Estimation
Jika kita berasumsi setiap pesan rata-rata berukuran 100 byte, kita memerlukan sekitar 200 GB penyimpanan database setiap hari.
Sesuai kebutuhan kami, kami juga mengetahui bahwa sekitar 5 persen dari pesan harian kami (100 juta) adalah file media. Jika kami berasumsi setiap file rata-rata berukuran 50 KB, kami memerlukan penyimpanan 10 TB setiap hari.
Dan selama 10 tahun, kami membutuhkan penyimpanan sekitar 38 PB.
C. Bandwidth Estimation
Karena sistem kami menangani masuknya 10,2 TB setiap hari, kami memerlukan bandwidth minimum sekitar 120 MB per detik.
D. High-level Estimate
Here is our high-level estimate:



Comments
Post a Comment