ऊर्जा कुशल वास्तुकला
1) बुनियादी सिद्धांत
1. प्रथम श्रेणी मीट्रिक के रूप में ऊर्जा। जूल्स/अनुरोध, डब्ल्यू/कोर, केडब्ल्यूएच/टीबी-माह - p95 और लागत के समान केपीआई।
2. कार्बोन-/ऊर्जा-जागरूक ऑर्केस्ट्रेशन। लोड शेड्यूल और कार्यों की नियुक्ति नेटवर्क और डेटा केंद्रों की तीव्रता को ध्यान में रखती है।
3. डेटा न्यूनतम। कम डेटा - कम CPU/IO कम शक्ति और शीतलन।
4. राइट-साइज़िंग और राइट-प्लेसिंग। हम संसाधन के सही प्रकार और आकार का चयन करते हैं और इसे उपयोगकर्ता/डेटा के करीब रखते हैं।
5. सादगी जीतती है। अतिरिक्त अमूर्तता और गपशप = अतिरिक्त ऊर्जा।
2) मेट्रिक्स और मॉडल
2. 1 मूल संरचनात्मक
PUE (पावर उपयोग दक्षता): 'PUE = कुल डेटा सेंटर एनर्जी/आईटी लोड एनर्जी' (1 के करीब, बेहतर)।
CUE (कार्बन उपयोग प्रभावशीलता): 'CUE = CO₂e/Energy IT'।
WUE (वाटर यूई): लीटर पानी प्रति kWh - पानी की कमी वाले क्षेत्रों के लिए महत्वपूर्ण है।
2. 2 अनुप्रयुक्त
J/req: 'E _ req = ∫ P (t) dt/ N_req'।
kWh/ETL कार्य, kWh/million संदेश, kWh/मॉडल प्रशिक्षण।
या : 'kWh × (समय, क्षेत्र)'।
2. 3 कार्बन मॉडल
carbon(req) = energy(req) grid_emission_factor(region, time)
energy(req) = cpu_j + mem_j + io_j + net_j
जहां 'ग्रिड _ एमिशन _ फैक्टर' घंटे और क्षेत्र (कार्बन-अवेयर शेड्यूलिंग) द्वारा भिन्न होता है।
3) इंस्ट्रूमेंटेशन और निष्पादन स्तर
सीपीयू आर्किटेक्चर: एआरएम/ग्रेविटन/आरआईएससी-वी अक्सर नेटवर्क और जावा/गो लोड के लिए सर्वश्रेष्ठ "डब्ल्यू/पर्फ" देते हैं; X86 उच्च सलाखों और कुछ SIMD के लिए मजबूत रहता है।
जीपीयू/टीपीयू/अन्य त्वरक: एमएल/वेक्टर एनालिटिक्स पर, वे अक्सर सर्वश्रेष्ठ "जे/ऑपरेशन" देते हैं यदि बैच और उच्च उपयोग रखते हैं।
डीवीएफएस और पावर कैपिंग: गैर-महत्वपूर्ण कार्यों के लिए गतिशील आवृत्ति में कमी और टीडीपी सीमा।
स्लीप मोड/ऑटो-ब्लैंकिंग: श्रमिकों और पृष्ठभूमि के लिए आक्रामक 'निष्क्रिय' नीतियां।
मेमोरी: NUMA इलाके और कम पृष्ठ याद बस और कैश ऊर्जा की खपत को कम करते हैं।
4) वास्तुशिल्प पैटर्न
4. 1 माइक्रोसर्विस बिना चैटिंग के
आरपीसी हॉप्स को कम करें: एकत्रीकरण द्वार, समग्र समापन बिंदु।
gRPC/HTTP/2/3 गपशप REST के बजाय।
बैच + Async: गोंद छोटे संचालन।
4. 2 "गर्म" और "ठंडा" तरीके
दुर्लभ, भारी अनुरोधों के लिए - जैसा कि आवश्यक बुनियादी ढांचा (ऑन-डिमांड, फ़ंक्शन/सर्वरलेस)।
गर्म रास्ते - लंबे समय तक जीवित कनेक्शन और पूल।
4. 3 कोलसिंग के साथ कैचिंग
Colescing अनुरोध कैश मिस तूफान को रोकता है।
बासी-जबकि-पुनर्नवीनीकरण: हम पुराने को छोड़ देते हैं, स्रोत की यात्रा को बचाते हैं।
4. 4 भंडारण थकाने वाला
हॉट/वार्म/कोल्ड/आर्काइव: एनवीएमई → एसएसडी → ऑब्जेक्ट-आधारित विलंबित → ग्लेशियर।
स्वचालित ILM/TTL: कम स्पिन/IO → कम शक्ति।
4. 5 कार्बन-अवेयर प्लानर
समय-हस्तांतरणीय जैब (ईटीएल, एनालिटिक्स, प्रशिक्षण) - हरे घंटे/क्षेत्रों में।
KWh और CO₂ - स्थानीय स्तर पर कुल मिलाकर क्षेत्रीय सड़ कें।
स्यूडोकोड:python def schedule(job):
windows = get_green_windows(job.region_candidates, next_48h)
pick = argmin(windows, key=lambda w: w.grid_factor job.energy_estimate / w.capacity)
enqueue(job, region=pick.region, start=pick.start)
4. 6 डीडुप्लिकेशन और कम्प्रेशन स्मार्टर
संपीड़न नेटवर्क/डिस्क सहेजता है, लेकिन सीपीयू खर्च करता है। अनुकूली रूप से लागू करें: बड़े पेलोड, कम सीपीयू लूप।
5) कोड और डेटा दक्षता
एल्गोरिथमिक्स: asymptotics> ट्यूनिंग को कम करें। प्रोफाइल हॉटस्पॉट।
मेमोरी आवंटन: बफर लीज, ऑब्जेक्ट पूल - कम जीसी/ऊर्जा।
प्रारूप: द्विआधारी प्रोटोकॉल, स्तंभ प्रारूप (Parquet/ORC) एनालिटिक्स के लिए, जिपफ कुंजी वितरण को कैशिंग करते समय ध्यान में रखा जाना चाहिए।
I/O: पैकेटाइजेशन, वेक्टोराइजेशन, अतुल्यकालिक I/O.
स्ट्रीमिंग बनाम पूर्ण स्कैन: डेटा स्रोत के लिए पुश-डाउन फिल्टर।
किनारे कार्य: पूर्व-एकत्रीकरण, शोर घटनाओं को त्यागना।
"क्वेरी एनर्जी" सूत्र (अनुमान) है:
E_req ≈ (cpu_ms W_cpu/ms) + (mem_ms W_mem/ms) +
(io_read_mb W_io/mb + io_write_mb W_io/mb) +
(egress_mb W_net/mb)
6) एमएल और डेटा: ऊर्जा पैटर्न
मॉडल वास्तुकला: छोटे/विशेष मॉडल, आसवन, परिमाणीकरण (int8/4-बिट), विरल।
प्रशिक्षण: बैच आकार ↗ निपटान, मिश्रित सटीकता (FP16/BF16), चौकियों, शुरुआती पड़ाव।
अनुमान: बैच + माइक्रोबैच, संकलन (TensorRT/ONNX Runtime), दिनम न्यूट सर्वर। कसाई।
सुविधा और सुविधा कहानी: अक्सर उपयोग की जाने वाली सुविधाओं की कैशिंग, स्रोत अधिभार के बजाय गुणवत्ता गिरावट।
7) नेटवर्क और प्रोटोकॉल
जीवित रखें, HTTP/3, QUIC, हैंडशेक को कम करना।
सीडीएन + एज कैश: छोटे मार्ग - kWh से कम।
प्रोफ़ाइल के साथ संपीड़न: बड़े संसाधनों के लिए zstd/brotley, छोटे/CPU-महंगे रास्तों के लिए कोई संपीड़न नहीं।
बहु-क्षेत्रीय दोहराव - केवल जब आरटीओ/आरपीओ की वास्तव में आवश्यकता होती है।
8) टेलीमेट्री और ऊर्जा अवलोकन
8. 1 संग्रह
पावर/पावर काउंटर (आईपीएमआई/आरएपीएल/नोड निर्यातक शक्ति), जीपीयू/टीपीयू टेलीमेट्री।
आवेदन स्तर पर: J/req एट्रिब्यूशन - CPU/IO समय नमूना और अंशांकन कारकों के माध्यम से।
निशान के साथ सहसंबंध: 'ऊर्जा _ j', 'कार्बन _ g', 'ग्रिड _ फैक्टर', 'क्षेत्र'।
8. 2 मेट्रिक्स और अलर्ट
SLI प्रति ऊर्जा: 'J/p95', 'J/txn'।
कार्बन बजट: उत्पाद द्वारा मासिक CO₂e सीमाएं।
बहाव: 'J/req' वृद्धि> बेसलाइन का X%।
9) सीआई/सीडी, गेट और परीक्षण
पर्फ-स्मोक + एनर्जी-स्मोक ऑन पीआर: शॉर्ट स्क्रिप्ट, कलेक्ट 'जे/रेक' और रीग्रेस गेट।
ऊर्जा आधारभूत: संदर्भ संग्रहीत करें (CPU/GPU, J/req flamegraphs)।
कोड के रूप में नीति: तैनाती का निषेध, यदि 'J/req> 10%' अनुमोदित अपवाद के बिना।
अराजकता + ऊर्जा मॉडल: निर्भरता क्षरण को सीमा से परे J/req नहीं बढ़ाना चाहिए (रेट्रे तूफानों के बजाय छायांकन/गिरावट)।
10) लोड और समय प्रबंधन
समय शिफ्ट (लोड शिफ्टिंग): गैर-इंटरैक्टिव कार्य - "ग्रीन" घंटे में।
गतिशील एसएलओ: पृष्ठभूमि के लिए, आप ऊर्जा बचाने के लिए विलंबता बढ़ा सकते हैं।
प्राथमिकता: महत्वपूर्ण अनुरोध "ऊर्जा कोटा", कम प्राथमिकता - स्थगित।
पावर कोटा के साथ लिमिटर स्यूडोकोड:python if energy_budget.low() and req.priority == "low":
return 429_DEFER process(req)
11) सुरक्षा, गोपनीयता और अनुपालन
हार्डवेयर त्वरित एन्क्रिप्शन (AES-NI/ARMv8 क्रिप्टो) - कम सीपीयू/डब्ल्यू।
पीआईआई न्यूनतम भंडारण/एनालिटिक्स बोझ को कम करता है।
लॉग: सैंपलिंग, मास्किंग और टीटीएल - संग्रह/भंडारण ऊर्जा बचाता है।
12) एंटी-पैटर्न
सेवाओं के बीच अत्यधिक माइक्रोसर्विस और "चैट"।
वैश्विक प्रतिकृति "बस मामले में।"
शून्य कैश टीटीएल और बासी निषेध।
बिना फिल्टर/इंडेक्स/बैच के पूर्ण स्कैन।
बिना किसी झटके के लगातार पीछे हटना - नेटवर्क तूफान।
"बड़ेमॉडल" का उपयोग करना जहां हेयूरिस्टिक्स पर्याप्त हैं।
भारी लॉग प्रारूप और "सब कुछ हमेशा के लिए लॉग करें।"
13) मिनी व्यंजनों और उदाहरण
13. 1 अनुकूली प्रतिक्रिया संपीड़न
python def maybe_compress(resp, cpu_load, size):
if size > 641024 and cpu_load < 0.6:
return compress_zstd(resp, level=5)
return resp # мелкие/дорогие по CPU ответы не сжимаем
13. 2 अनुमान बुचिंग Heuristics
python batch = collect_until(max_items=64, max_wait_ms=8)
result = model.infer(batch) # ↑ утилизация ускорителя, ↓ Дж/запрос
13. घटनाओं के लिए 3 ILM/TTL
yaml dataset: events lifecycle:
- hot: 7d # NVMe
- warm: 90d # SSD + zstd
- cold: 365d # object store
- delete
13. 4 कार्बन-जागरूक ईटीएल
python co2 = kwh_estimate(job) grid_factor(region, now())
if co2 > job.threshold and job.deferable:
delay(job, until=next_green_window())
else:
run(job)
14) आर्किटेक्ट चेकलिस्ट
1. ऊर्जा (J/req, kWh/नौकरी) और कार्बन (gCO₂e/req) SLIs निर्धारित?
2. क्या सेवाओं/सुविधाओं/किरायेदारों द्वारा ऊर्जा को जिम्मेदार ठहराने के लिए कोई मॉडल
3. कार्यान्वित किए गए पोर्टेबल कार्यों के लिए कार्बन-जागरूक
4. Microservices चैटिंग (एकत्रीकरण, बैच, gRPC/HTTP3) को कम से कम करते हैं?
5. क्या कोलसिंग और बासी-जबकि-पुनर्मूल्यांकन कॉन्फ़िगर किए गए कैश हैं?
6. क्या स्टोर टोंड, ILM/TTL सक्षम हैं, डेटा प्रारूप इष्टतम हैं?
7. एमएल: आसवन/परिमाणीकरण/कसाई/अनुमान संकलन का उपयोग किया जाता है?
8. CI/CD में J/req the पर ऊर्जा-धुआं, बेसलाइन और गेट हैं?
9. एज/सीडीएन/क्षेत्रीय प्लेसमेंट एग्रेस और रूट को कम करता है?
10. सक्षम श्रमिकों के लिए डीवीएफएस/पावर-कैपिंग/निष्क्रिय?
11. क्या लॉग/मैट्रिक्स/ट्रेल्स का नमूना लिया जाता है और उन्हें महत्व दिया जाता
12. ग्रीन रनबुक प्रलेखित: ऊर्जा दुर्लभ होने पर क्या बंद/अपमानित करना है?
निष्कर्ष
ऊर्जा कुशल वास्तुकला "अंतिम अनुकूलन" नहीं है, बल्कि गुणवत्ता की एक रणनीतिक परत है: एल्गोरिदम और प्रारूपों से "हरे" क्षेत्र में प्लेसमेंट और सीआई/सीडी में द्वार। जूल को मापना, मन में कार्बन के साथ योजना बनाना, बातचीत को सरल बनाना, डेटा को पिघलाना और त्वरक का उपयोग करना जहां यह "जे/ऑप" को कम करता है। "तो आपको एक ऐसा मंच मिलता है जो तेज, सस्ता और हरियाली है - उत्पाद मूल्य पर समझौता किए बिना।