OpenFreeMap Berbagi Pengalaman Menangani 100.000 Permintaan per Detik
(blog.hyperknot.com)- OpenFreeMap berhasil menangani 100.000 permintaan per detik dan 300 juta permintaan lalu lintas harian
- Popularitas mendadak Wplace.live dan permintaan massal yang otomatis menjadi penyebab lonjakan lalu lintas
- Cloudflare mencapai tingkat cache CDN 99,4%, sementara server dengan mudah menyerap sisa 1.000 rps
- Akibatnya hanya terjadi gangguan kecil seperti tile hilang, dan layanan sebagian besar tetap beroperasi normal
- Untuk ke depan direncanakan peningkatan pengelolaan lalu lintas otomatis, termasuk pembatasan bandwidth berbasis referer
Pengalaman 10 Bulan Terakhir OpenFreeMap dan Penanganan Lalu Lintas Berukuran Besar
OpenFreeMap telah melewati pengalaman operasi yang sangat stabil selama 10 bulan terakhir. Dukungan bandwidth dari Cloudflare, stabilitas server Hetzner, layanan tile pada Btrfs, dan efisiensi nginx menunjukkan bahwa keandalan sistem sudah terbukti. Namun, suatu saat mendapat laporan bahwa beberapa tile tidak termuat. Umumnya ini biasanya disebabkan bug algoritma, tetapi pada kesempatan ini ditemukan error open() "Too many open files" di log nginx.
Dengan memeriksa melalui alat pemantau lalu lintas, terdeteksi bahwa dalam kurun waktu 24 jam terjadi 3 miliar permintaan, dan untuk file tile berukuran kecil saja tercatat 215 TB trafik. Dalam 5 menit terakhir sempat terjadi 30 juta permintaan, mencapai lonjakan 100.000 permintaan per detik. Lalu lintas seperti ini diperkirakan memerlukan biaya lebih dari 6 juta dolar AS per bulan untuk layanan peta komersial.
Di dashboard Cloudflare, 96% merespons 200 OK, dan hanya 3,6% yang abnormal (206 Partial Content). Mayoritas permintaan dilayani secara normal, dan di luar beberapa tile yang hilang, keseluruhan sistem tetap berjalan dengan baik.
Penyebab Lonjakan Lalu Lintas: Wplace.live
Penyebab lonjakan kali ini adalah situs gambar kolaboratif baru bernama Wplace.live. Setelah diluncurkan, banyak pengguna berdatangan dan situs ini dirancang agar menggunakan peta berbasis OpenFreeMap. Untuk menghindari batas 1 piksel/30 detik, pengguna membangkitkan permintaan massal menggunakan alat otomatisasi (misalnya Puppeteer/Chromium, rotasi IP, dan sebagainya).
Pengelola menekankan pentingnya komunikasi awal sebelum trafik meningkat, mengacu pada pengalaman sebelumnya saat bekerja sama dengan Neal.fun. Karena kali ini mengganggu operasi layanan, aturan Cloudflare diterapkan untuk pertama kalinya guna memblokir trafik tersebut. Ke depan, sedang dicari solusi kontrol lalu lintas otomatis berbasis referer atau custom header, termasuk pemanfaatan Cloudflare API.
Dukungan Cloudflare dan Kinerja Arsitektur OpenFreeMap
Cloudflare menyetujui dukungan bandwidth dalam prosedur yang sangat cepat (dalam 48 jam termasuk akhir pekan) dan juga berdiskusi hingga tingkat arsitektur bersama tim engineer. Hal ini menunjukkan responsivitas yang fleksibel meski merupakan perusahaan berskala besar.
Operator bangga berhasil mencapai tingkat cache CDN 99.4% dan bahwa server mampu menahan beban 1.000 rps. Untuk layanan yang menyediakan pembaruan data mingguan, ini adalah kinerja yang cukup tinggi.
Komunikasi dengan Pengembang Wplace.live, dan Rekomendasi Solusi
Setelah terjalin kontak dengan pengembang Wplace.live, dipahami bahwa peningkatan hingga 2 juta pengguna secara mendadak menyebabkan keterbatasan kesiapan mereka. Mereka diusulkan untuk mendukung instance self-hosting OpenFreeMap, dan didiskusikan agar konsentrasi lalu lintas dapat ditekan sekaligus meningkatkan efisiensi.
Selain itu, meski jumlah pengguna hanya 2 juta, munculnya 3 miliar permintaan menunjukkan dominasi permintaan massal berbasis skrip. Karena pengguna biasa hanya melakukan 10 hingga 20 permintaan, disarankan mengubah kebijakan layanan untuk mencegah permintaan otomatis yang tidak perlu.
Rencana Peningkatan dan Pembelajaran ke Depan
Operator mengumumkan dua perbaikan yang akan dilakukan.
-
Pembatasan bandwidth berbasis Referer
- Rencana memasukkan batas per referer di Cloudflare, misalnya 100–200 juta permintaan per 24 jam
- Aplikasi native akan diarahkan agar menggunakan custom header
-
Penanganan tile hilang dan perbaikan konfigurasi server
- Akan dilakukan tindakan agar tile kosong yang dihasilkan karena pengaturan server yang salah tidak terjadi lagi
OpenFreeMap saat ini dioperasikan dengan donasi $500 per bulan. Biaya infrastruktur sudah terpenuhi, tetapi pengembangan baru masih bergantung pada waktu pribadi yang terbatas. Dukungan lebih lanjut dapat memungkinkan peningkatan kecepatan pengembangan dan perluasan stabilitas layanan.
Anda dapat berpartisipasi dalam mendukung proyek melalui GitHub Sponsors: https://github.com/sponsors/hyperknot
Belum ada komentar.