Windows Server 2025 ARM पर बेहतर चलता है
(jasoneckert.github.io)- वर्चुअलाइज़्ड Windows Server 2025 की तुलना में ARM64 host पर ARM64 guest कॉन्फ़िगरेशन स्थिर रूप से चला, और service startup, management console launch तथा hands-on tasks में भी अधिक तेज़ महसूस होने वाली responsiveness देखी गई
- दोनों VM में memory, virtual processor, और role configuration समान रखे गए, और measurement में Snapdragon system में CPU utilization का उतार-चढ़ाव कम था,
Processor Queue Lengthलगातार 0 रहा, और CPU Wait Time Per Dispatch के मान भी स्थिर रहे - IIS, DNS, Active Directory query, domain authentication, और file I/O के repeated measurement में भी Snapdragon X Elite ने लगभग हर बार reproducible timing दिखाई, जबकि Intel कुछ runs में तेज़ था लेकिन कुल मिलाकर variation अधिक था
- अंतर को केवल CPU architecture से नहीं जोड़ा गया; storage, memory, power management, और thermal characteristics के साथ latency consistency और predictable scheduling वर्चुअलाइज़्ड server workloads में अधिक महत्वपूर्ण लगे
- maximum throughput-केंद्रित workloads में x64 की बढ़त बनी हुई है, लेकिन छोटे latency-sensitive tasks वाले सामान्य Windows Server deployments में ARM64 अधिक आकर्षक दिखता है; हालांकि training के standard platform के लिए ARM64 में nested virtualization सपोर्ट न होने से x64 ही रखा गया है
टेस्ट वातावरण और तुलना के मानदंड
- Windows Server 2025 का virtual environment दो systems पर अलग-अलग बनाकर तुलना की गई
- Windows 11 आधारित 14th Gen Intel Core i9 system पर कई Hyper-V virtual machines चलाई गईं
- Windows 11 on ARM आधारित Snapdragon X Elite system पर भी वही Windows Server 2025 environment बनाया गया
- Microsoft website पर Windows Server 2025 ARM का official install ISO उपलब्ध न होने के कारण, UUP dump से Microsoft update servers पर आधारित image बनाकर install किया गया
- दोनों Hyper-V VM में memory, virtual processor, और installed roles समान रखे गए
- Snapdragon X Elite: ARM64 guest on ARM64 host
- Intel Core i9: x64 guest on x64 host
शुरुआती अवलोकन और व्याख्या की सीमा
- ARM system पर Windows Server 2025 environment stable और सही ढंग से काम करने वाला था, और real-world use के स्तर पर कुल मिलाकर अधिक तेज़ महसूस हुआ
- services जल्दी शुरू हुईं
- management consoles तेज़ खुलीं
- textbook writing के लिए practice tasks कम समय में पूरे हुए
- हालांकि performance difference को केवल CPU architecture का परिणाम नहीं माना गया
- storage, memory, power management, और thermal characteristics भी परिणामों को प्रभावित कर सकते हैं
- “ARM तेज़ है” जैसी सीधी बात कहने के बजाय पूरे system की विशेषताओं के आधार पर व्याख्या ज़रूरी है
- Windows Server के सामान्य service workloads में thread-heavy और छोटे लेकिन बार-बार होने वाले CPU और I/O tasks की प्रवृत्ति होती है
- इसमें Active Directory, DNS, DHCP, IIS, SMB/NFS/DFS file services, Print Services, Certificate Services, Remote Desktop Services, Routing and Remote Access, NPS आदि शामिल हैं
- ऐसे workloads latency और context switching के प्रति संवेदनशील होते हैं, इसलिए लगातार स्थिर performance का लाभ मिलता है
प्रदर्शन अंतर पर अवलोकन
- Snapdragon परिवार के ARM systems में उच्च boost clock के पीछे भागने के बजाय लगातार और स्थिर performance देने की प्रवृत्ति देखी गई
- आधुनिक Intel CPU में frequency boost और dynamic throttling के कारण उच्च peak performance मिल सकती है
- लेकिन sustained load या mixed load में scheduling और latency variation बढ़ सकती है
- virtualization environment में यह variation और महत्वपूर्ण हो जाती है
- Hyper-V जैसा hypervisor व्यवहार में hardware scheduler की तरह काम करता है
- hardware execution timing जितनी predictable होगी, hypervisor scheduling उतनी ही consistent होगी
- इसका असर VM और उसके अंदर चल रही services की responsiveness पर पड़ता है
- Windows Server ARM64 build में स्वयं कुछ अंतर होने की संभावना भी बताई गई
- online उपलब्ध कई release notes के आधार पर, ARM64 version कुछ legacy compatibility layers से बचता है और संभवतः अधिक modern और optimized binaries का उपयोग करता है
- यह x64 version की तुलना में अधिक cleaned-up build हो सकता है
- हालांकि इसके लिए कोई ठोस internal implementation evidence नहीं दिया गया
Performance Monitor से मापन
- दोनों Windows 11 hosts पर Performance Monitor counters जोड़कर measurement किया गया
\\Processor(_Total)\\% Processor Time- सभी cores के आधार पर CPU usage
\\System\\Processor Queue Length- CPU time की प्रतीक्षा कर रहे threads की संख्या
- आदर्श रूप से 0 रहना बेहतर है
\\Hyper-V Hypervisor Virtual Processor(*)\\CPU Wait Time Per Dispatch- virtual processor को CPU पर schedule होने से पहले प्रतीक्षा का औसत समय
- प्रत्येक VM के अंदर PowerShell से load generate करके परिणाम देखे गए
Get-Processके परिणामों को CPU usage के आधार पर sort करके top 5 को बार-बार query करने वाला infinite loop 8 बार चलाया गया
- measurement results में Snapdragon ने लगातार और स्थिर performance pattern दिखाया
% Processor Timeमें उतार-चढ़ाव बहुत कम थाProcessor Queue Lengthलगातार 0 रहाCPU Wait Time Per Dispatchभी समतल और स्थिर रहा
- Intel system में boost/throttle variability metrics में साफ़ दिखी
% Processor Timeका उतार-चढ़ाव अधिक थाProcessor Queue Lengthसमय-समय पर तेज़ी से बढ़ाCPU Wait Time Per Dispatchमें भी उल्लेखनीय variation दिखा
service responsiveness का मापन
- हर VM की PowerShell में Measure-Command का उपयोग करके सामान्य service tasks का समय मापा गया
- IIS web server पर टेस्ट किया गया
Invoke-WebRequest http://localhost -UseBasicParsing | Out-Nullको 1000 बार दोहराया गया
- इसी तरह अन्य services का भी repeated measurement किया गया
- DNS
Resolve-DnsName "domainX.com" -Server 127.0.0.1 | Out-Null
- Active Directory query
Get-ADUser -Filter * -ResultSetSize 1 | Out-Null
- domain authentication latency
Test-ComputerSecureChannel -Verbose:$false
- file I/O
C:\TestFilesdirectory बनाई गई- 2000 repetitions में file create, write, read, और delete किया गया
- DNS
- कई बार दोहराने पर Snapdragon system ने लगभग हर बार consistent और reproducible timings दर्ज कीं
- Intel system में परिणामों में variation अधिक था
- कुछ runs में वह Snapdragon से तेज़ भी था
- लेकिन अधिकांश मामलों में पीछे रहा
- कुल मिलाकर निष्कर्ष यह रहा कि लगभग सभी tests में Snapdragon आगे रहा
मुख्य निष्कर्ष
- सभी परिणामों में जो साझा तत्व उभरकर आया, वह था latency consistency
- वर्चुअलाइज़्ड Windows Server workloads में छोटे लेकिन बार-बार होने वाले tasks पर तेज़ response और predictable scheduling बहुत महत्वपूर्ण हैं
- maximum throughput महत्वपूर्ण होने वाले workloads में x64 systems की स्पष्ट बढ़त अभी भी बनी हुई है
- इसके विपरीत, सामान्य Windows Server deployment की तरह ऐसे environments में जहाँ कई छोटे latency-sensitive tasks virtualization के तहत साथ चल रहे हों, वहाँ सिर्फ़ peak speed से अधिक consistency अहम होती है
- इसी संदर्भ में ARM64 का आकर्षण बढ़ता है
- ARM64 पहले से ही cloud environments में व्यापक रूप से उपयोग हो रहा है, और यह भी कहा गया कि performance-per-cost ratio x64 से बेहतर हो सकता है
- यह सवाल उठाया गया कि Microsoft को Windows Server के भविष्य में ARM64 की बड़ी भूमिका पर विचार करना चाहिए
- फिलहाल Microsoft Windows Server on ARM64 को fully support नहीं करता
- लेकिन पिछले वर्ष नए Microsoft Azure VM instances में 33% और Amazon AWS में 50% ARM64 थे, ऐसा आँकड़ा दिया गया
शिक्षा के लिए standard platform का चयन
- textbook lab environment के लिए अभी भी x64 standardization बनाए रखी गई है
- कारण यह है कि lab setup में nested virtualization शामिल है
- Hyper-V में ARM64 पर nested virtualization support न होने के कारण ARM64 को फिलहाल training के default environment के रूप में नहीं चुना गया
- छात्र चाहें तो labs को workaround के साथ चला सकते हैं, लेकिन textbook का एक लक्ष्य reproducibility भी है, इसलिए step-by-step समान रूप से काम करने वाले environment को प्राथमिकता दी गई
- इस समय education use case के लिए x64 ही व्यावहारिक विकल्प बना हुआ है
1 टिप्पणियां
Hacker News टिप्पणियाँ
use-after-freeजैसे जोखिमभरे behavior या अंदरूनी NT heap structures पर निर्भर हो सकते थे, इस वजह से default को एक साथ नहीं बदला गया। इसलिए packaged executables पर segment heap को default बनाया गया और unpackaged वाले वैसे ही छोड़ दिए गए। लेकिन UWP migration असफल रहने से Windows ecosystem और बिखर गया, और ज़्यादातर महत्वपूर्ण software अब भी unpackaged x64 ही रहा। दूसरी ओर, arm64 binaries के पुराने legacy code होने की संभावना कम थी, इसलिए arm पर segment heap default रूप से enabled है। उपयोगकर्ताओं को arm Windows ज़्यादा responsive लगने की एक बड़ी वजह शायद यही है। x64 पर segment heap को ज़बरदस्ती enable करके यह टेस्ट फिर से चलाया जाए तो दिलचस्प होगा। प्रति executable,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\.exeके नीचेFrontEndHeapDebugOptionsDWORD को 8 पर सेट किया जा सकता है, और global रूप सेHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Segment Heapके नीचेEnabledDWORD को 3 पर। मेरी development machine पर global enable करने के बाद कोई समस्या नहीं दिखी, और memory usage टेस्ट के आधार पर लगभग 15% कम हुआheapTypeकोSegmentHeapपर सेट करके इस behavior को opt-in कर सकते हैं। दस्तावेज़ में इसका विवरण है