OpenFreeMap ने प्रति सेकंड 1 लाख requests संभालने का अनुभव साझा किया
(blog.hyperknot.com)- OpenFreeMap ने प्रति सेकंड 1 लाख requests और प्रति दिन करीब 30 करोड़ (300 मिलियन) ट्रैफिक सफलतापूर्वक संभाला
- Wplace.live की अचानक बढ़ी लोकप्रियता और automated bulk requests ट्रैफिक स्पाइक के कारण बने
- Cloudflare की CDN cache rate 99.4%, और server ने अतिरिक्त 1,000 rps भी आराम से संभाल लिया
- इससे केवल tile miss जैसी छोटी-मोटी समस्याएँ आईं, बाकी सेवा लगभग पूरी तरह सामान्य रही
- आगे referer-based bandwidth throttling जैसे automated traffic management सुधार लागू करने की योजना है
OpenFreeMap के पिछले 10 महीने और हाई-ट्रैफिक का अनुभव
OpenFreeMap ने पिछले 10 महीनों में बेहद स्थिर संचालन का अनुभव किया। Cloudflare की bandwidth sponsorship, Hetzner server reliability, Btrfs पर tile service और nginx की efficiency की वजह से सिस्टम की reliability साबित हुई। लेकिन एक दिन अचानक कुछ tiles load नहीं होने की रिपोर्ट आई। आम तौर पर यह algorithm bug की वजह से होता है, लेकिन इस बार open() "Too many open files" error nginx logs में मिली।
ट्रैफिक मॉनिटरिंग टूल से देखा गया कि 24 घंटे में 30 अरब requests हुए और सिर्फ छोटे tile files से भी 215TB traffic record हुआ। हाल के 5 मिनट में 3 करोड़ requests यानी प्रति सेकंड करीब 10 लाख requests का spike आया। यह traffic किसी भी commercial map service में प्रति माह 600,000 USD से ज्यादा खर्च करा सकता था।
Cloudflare डैशबोर्ड पर 96% requests को 200 OK response मिला, जबकि केवल 3.6% abnormal थे (206 Partial Content)। यानी ज्यादातर requests ठीक से serve हुए, और कुछ missing tiles को छोड़कर बाकी सिस्टम सामान्य काम कर रहा था।
ट्रैफिक स्पाइक का कारण: Wplace.live
इस स्पाइक का कारण नया collaborative drawing website Wplace.live था। लॉन्च के बाद अचानक बहुत सारे users आ गए और इसे OpenFreeMap-based map use करने के लिए design किया गया था। users ने 1-pixel/30-second limit को bypass करने के लिए automation tools (जैसे Puppeteer/Chromium, IP rotation आदि) से bulk requests भेजीं।
ऐडमिन ने पुराने अनुभव Neal.fun से बताया कि traffic आने से पहले communication कितना important होता है। इस बार सेवा प्रभावित होने पर Cloudflare rules पहली बार लागू करके block करना पड़ा। आगे referer या custom header आधारित automated traffic control (Cloudflare API के साथ) पर काम करने की योजना है。
Cloudflare की मदद और OpenFreeMap architecture का परिणाम
Cloudflare ने bandwidth sponsorship बहुत तेज़ी से approve की—वीकेंड समेत करीब 48 घंटे के भीतर—और architecture fit पर engineers के साथ discussion भी हुआ। इतने बड़े enterprise होने के बाद भी उन्होंने बहुत agile response दिखाया।
ऑपरेटर ने 99.4% CDN cache rate पाने पर गर्व जताया और कहा कि server ने 1,000 rps का load भी अच्छी तरह संभाला। साप्ताहिक data अपडेट देने वाली services के लिए यह काफ़ी अच्छा result है।
Wplace.live developer से बातचीत और समाधान सुझाव
इसके बाद Wplace.live developer से संपर्क हुआ, जिन्होंने अचानक 20 लाख users बढ़ने से तैयारी की कमी को समझा। उनसे OpenFreeMap self-hosting instance support पर चर्चा हुई ताकि traffic concentration घटे और efficiency बढ़े।
साथ ही वास्तविक 20 लाख users के हिसाब से 30 करोड़ requests आना दिखाता है कि script-based bulk requests ही ज़्यादातर कारण थे। सामान्य उपयोगकर्ता केवल 10-20 requests ही करते हैं, इसलिए सेवा नीति बदलकर गैर-जरूरी automated requests रोकने की सलाह दी गई।
आगे सुधार और सीख
ऑपरेटर ने दो सुधार मुद्दे बताए:
-
Referer-based bandwidth limiting
- Cloudflare में referer के हिसाब से requests को 24 घंटे में 100M-200M तक limit करने की योजना है
- native apps को custom header इस्तेमाल की तरफ़ ले जाने का plan है
-
Tile miss handling और server configuration सुधार
- गलत server सेटिंग से बनने वाली खाली tiles को रोकने के कदम लिए जाएँगे
OpenFreeMap अभी महीने में 500 USD की donations पर चल रहा है। infrastructure cost लगभग पूरी तरह कवर हो जाती है, लेकिन नई development काम सीमित personal time पर निर्भर है। अतिरिक्त support मिलने पर development speed और service stability दोनों बढ़ेंगी।
GitHub sponsorship के जरिए project support किया जा सकता है: https://github.com/sponsors/hyperknot
अभी कोई टिप्पणी नहीं है.