Azure ARM Architecture सर्वर कैसे प्रदर्शन करता है?
API7.ai
August 8, 2022
पृष्ठभूमि
अप्रैल में, Microsoft ने Ampere® Altra® Arm प्रोसेसर पर आधारित Azure वर्चुअल मशीनों के परिवार का पूर्वावलोकन घोषित किया। नई VM श्रृंखला में सामान्य-उद्देश्य Dpsv5 और मेमोरी-अनुकूलित Epsv5 VMs शामिल हैं। विवरण के लिए, निम्नलिखित चित्र देखें:

ध्यान देने योग्य है कि Ampere® Altra® Arm एक क्लाउड-नेटिव प्रोसेसर है, और Ampere® Altra® Arm प्रोसेसर पर आधारित Azure वर्चुअल मशीनें इसलिए स्केल-आउट क्लाउड-नेटिव एप्लिकेशन को कुशल तरीके से चला सकती हैं।
तो वास्तविक अनुभव और प्रदर्शन क्या है? आइए एक क्लाउड-नेटिव API गेटवे को उदाहरण के रूप में लेते हैं ताकि आपको Arm आर्किटेक्चर पर आधारित Azure वर्चुअल मशीन का प्रदर्शन दिखा सकें। यहां, हम सामान्य-उद्देश्य Dpdsv5 श्रृंखला वर्चुअल मशीन वातावरण पर Apache APISIX को स्थापित और परीक्षण करने के लिए चुनते हैं।
Apache APISIX एक क्लाउड-नेटिव, उच्च-प्रदर्शन, स्केलेबल API गेटवे है। NGNIX + LuaJIT और etcd पर आधारित, APISIX में पारंपरिक API गेटवे की तुलना में डायनामिक रूटिंग और प्लगइन हॉट लोडिंग की विशेषताएं हैं, जो क्लाउड-नेटिव आर्किटेक्चर के तहत API प्रबंधन के लिए विशेष रूप से उपयुक्त है।

प्रारंभिक तैयारी
सबसे पहले, आपको Azure पर एक Dpdsv5 श्रृंखला इंस्टेंस शुरू करने की आवश्यकता है, और ऑपरेटिंग सिस्टम के रूप में Ubuntu 20.04 चुनें।

फिर Docker स्थापित करें ताकि बाद में कंटेनराइज्ड तरीके से Apache APISIX को स्थापित और तैनात करने में सुविधा हो।
sudo apt-get update && sudo apt-get install docker.io
Apache APISIX तैनात करें
Apache APISIX कॉन्फ़िगरेशन सेंटर के रूप में etcd का उपयोग करता है, इसलिए आपको पहले एक etcd इंस्टेंस शुरू करने की आवश्यकता है।
sudo docker run -d --name etcd -p 2379:2379 -e ETCD_UNSUPPORTED_ARCH=arm64 -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 -e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 rancher/coreos-etcd:v3.4.16-arm64
फिर Apache APISIX का एक इंस्टेंस शुरू करें।
sudo docker run --net=host -d apache/apisix:2.14.1-alpine
रूट बनाएं।
curl "http://127.0.0.1:9080/apisix/admin/routes/1" -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d ' { "uri": "/anything/*", "upstream": { "type": "roundrobin", "nodes": { "httpbin.org:80": 1 } } }'
परीक्षण के लिए एक्सेस करें।
curl -i http://127.0.0.1:9080/anything/das
यदि निम्नलिखित परिणाम वापस आते हैं, तो स्थापना सफल है:
HTTP/1.1 200 OK .....
Azure Ddsv5 बनाम Azure Dpdsv5
उपरोक्त कार्यों से, Azure Dpdsv5 पर Apache APISIX की स्थापना और संगतता परीक्षण सफलतापूर्वक पूरा किया जा सकता है। तो Azure Dpdsv5 का वास्तविक प्रदर्शन क्या है? आगे, हम Azure Dpdsv5 और Azure Ddsv5 पर Apache APISIX का उपयोग करके प्रदर्शन परीक्षण तुलना करेंगे ताकि उनका वास्तविक प्रदर्शन देख सकें।
Azure Ddsv5 Azure D श्रृंखला का एक और मॉडल है, जो Intel® x86 आर्किटेक्चर पर आधारित है, इसलिए उपरोक्त etcd स्थापना चरण थोड़े अलग हैं:
sudo docker run -d --name etcd -p 2379:2379 -e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 -e ALLOW_NONE_AUTHENTICATION=yes -e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 bitnami/etcd:3.4.16
एकल अपस्ट्रीम + कोई प्लगइन नहीं
एकल अपस्ट्रीम का उपयोग करें, बिना किसी प्लगइन के। यह मुख्य रूप से शुद्ध प्रॉक्सी बैक-टू-ओरिजिन मोड में APISIX के प्रदर्शन का परीक्षण करता है।
# apisix: 1 worker + 1 upstream + no plugin # create route curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:1980":1 } } }'
एकल अपस्ट्रीम + दो प्लगइन
एकल अपस्ट्रीम का उपयोग करें, दो प्लगइन के साथ। यह मुख्य रूप से APISIX के प्रदर्शन का परीक्षण करता है जब दो मुख्य प्रदर्शन-खपत प्लगइन, limit-count और prometheus, सक्षम होते हैं।
# apisix: 1 worker + 1 upstream + 2 plugins (limit-count + prometheus) # create route curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { "limit-count": { "count": 2000000000000, "time_window": 60, "rejected_code": 503, "key": "remote_addr" }, "prometheus": {} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:1980":1 } } }'
डेटा तुलना
उपरोक्त दो परिदृश्यों में, अनुरोध QPS (प्रति सेकंड क्वेरी) और विलंब समय के दो स्तरों से संबंधित परीक्षण और तुलना की गई। परिणाम निम्नलिखित है:
-
QPS तुलना

-
विलंब तुलना

| | एकल अपस्ट्रीम + कोई प्लगइन नहीं | एकल अपस्ट्रीम + दो प्लगइन | | ------------------ | --------------------------- | ----------------------------- | --------------- | ---------------- | | | Azure Ddsv5 | Azure Dpdsv5 | Azure Ddsv5 | Azure Dpdsv5 | | QPS(request/s) | 14900 | 13400 | 13100 | 11000 | | विलंब(ms) | 1.07 | 1.21 | 1.21 | 1.43 |
उपरोक्त डेटा से यह भी देखा जा सकता है कि API गेटवे जैसे नेटवर्क IO-गहन कंप्यूटिंग परिदृश्यों में, Dpdsv5 अभी भी Ddsv5 की तुलना में प्रदर्शन में पीछे है। लेकिन एक और अच्छी खबर यह है कि समान कॉन्फ़िगरेशन के तहत Dpdsv5 की कीमत Ddsv5 से लगभग 20% सस्ती है। वास्तविक मशीन चयन में, उपयोगकर्ता अपने व्यावसायिक मात्रा के अनुसार लचीले निर्णय ले सकते हैं।
सारांश
यह लेख मुख्य रूप से Apache APISIX का उपयोग करके Azure Ddsv5 और Azure Dpdsv5 के प्रदर्शन की तुलना करता है। यह देखा जा सकता है कि API गेटवे जैसे नेटवर्क IO-गहन कंप्यूटिंग परिदृश्यों में, Azure Dpdsv5 Ddsv5 की तुलना में इतना चमकदार नहीं है, लेकिन चूंकि यह श्रृंखला अभी भी पूर्वावलोकन में है, Microsoft लगातार सुधार और अनुकूलन कर रहा है। इसके अगले संस्करण की प्रतीक्षा है।
संदर्भ
Now in preview: Azure Virtual Machines with Ampere Altra Arm-based processors