اختبار الأداء

يمكن أن يكون اختبار أداء مثيل Redis مهمة معقدة. يمكن أن يختلف أداء مثيل Redis استنادا إلى معلمات مثل عدد العملاء وحجم قيم البيانات وما إذا كان يتم استخدام الأنابيب. يمكن أن يكون هناك أيضا مقايضة بين تحسين معدل النقل أو زمن الانتقال.

لحسن الحظ، توجد العديد من الأدوات لجعل قياس Redis أسهل. اثنتان من الأدوات الأكثر شيوعا هما redis-benchmark وmemtier-benchmark. تركز هذه المقالة على redis-benchmark.

كيفية استخدام الأداة المساعدة redis-benchmark

  1. قم بتثبيت مصدر مفتوح خادم Redis على جهاز ظاهري للعميل يمكنك استخدامه للاختبار. تم تضمين الأداة المساعدة redis-benchmark في توزيع مصدر مفتوح Redis. اتبع وثائق Redis للحصول على إرشادات حول كيفية تثبيت صورة مصدر مفتوح.

  2. يجب أن يكون الجهاز الظاهري للعميل المستخدم للاختبار في نفس المنطقة مثل Azure Cache لمثيل Redis.

  3. تأكد من أن الجهاز الظاهري للعميل الذي تستخدمه يحتوي على أقل قدر من الحوسبة والنطاق الترددي مثل مثيل ذاكرة التخزين المؤقت الذي يتم اختباره.

  4. قم بتكوين إعدادات عزل الشبكة وجدار الحماية للتأكد من أن الجهاز الظاهري للعميل قادر على الوصول إلى Azure Cache لمثيل Redis.

  5. إذا كنت تستخدم TLS/SSL على مثيل ذاكرة التخزين المؤقت، فأنت بحاجة إلى إضافة المعلمة --tls إلى أمر redis-benchmark أو استخدام وكيل مثل stunnel.

  6. Redis-benchmark يستخدم المنفذ 6379 بشكل افتراضي. استخدم المعلمة -p لتجاوز هذا الإعداد. تحتاج إلى استخدام -p، إذا كنت تستخدم SSL/TLS (المنفذ 6380) أو تستخدم طبقة المؤسسة (المنفذ 10000).

  7. إذا كنت تستخدم Azure Cache لمثيل Redis الذي يستخدم التجميع، فستحتاج إلى إضافة المعلمة --cluster إلى الأمر الخاص بك redis-benchmark . يمكن التعامل مع ذاكرة التخزين المؤقت لمستوى المؤسسة باستخدام نهج تجميع المؤسسة كذاكرة تخزين مؤقت غير متفاوتة المسافات ولا تحتاج إلى هذا الإعداد.

  8. ابدأ من redis-benchmark CLI أو shell للجهاز الظاهري. للحصول على إرشادات حول كيفية تكوين الأداة وتشغيلها، راجع وثائق redis-benchmark وأمثلة redis-benchmark.

توصيات قياس الأداء

  • من المهم عدم اختبار أداء ذاكرة التخزين المؤقت فقط في ظل ظروف الحالة الثابتة. اختبر في ظل ظروف تجاوز الفشل أيضًا، وقِس تحميل المعالج/الحامل على ذاكرة التخزين المؤقت الخاصة بك خلال ذلك الوقت. يمكن بدء تجاوز الفشل عن طريق إعادة تشغيل العقدة الأساسية. يسمح لك الاختبار في ظل ظروف تجاوز الفشل برؤية معدل النقل وزمن الانتقال للتطبيق أثناء ظروف تجاوز الفشل. يمكن أن يقع تجاوز الفشل أثناء التحديثات أو أثناء حدث غير مخطط له. من الناحية المثالية، لا تريد أن ترى ذروة تحميل وحدة المعالجة المركزية/الخادم إلى أكثر من 80٪ حتى أثناء تجاوز الفشل حيث يمكن أن يؤثر ذلك على الأداء.

  • ضع في اعتبارك استخدام Enterprise وPremium tier Azure Cache لمثيلات Redis. تحتوي أحجام ذاكرة التخزين المؤقت هذه على زمن انتقال ومعدل نقل أفضل للشبكة لأنها تعمل على أجهزة أفضل.

  • يتمتع مستوى المؤسسة بشكل عام بأفضل أداء، حيث يسمح Redis Enterprise لعملية Redis الأساسية باستخدام وحدات vCPUs متعددة. المستويات المستندة إلى مصدر مفتوح Redis، مثل Standard وPremium، قادرة فقط على استخدام وحدة معالجة مركزية ظاهرية واحدة لعملية Redis لكل جزء.

  • قد يكون قياس مستوى Enterprise Flash صعبا لأنه يتم تخزين بعض المفاتيح على DRAM بينما يتم تخزين بعضها على قرص محمول NVMe. المفاتيح الموجودة على معيار DRAM بنفس سرعة مثيل مستوى المؤسسة تقريبا، ولكن المفاتيح الموجودة على القرص الفلاش NVMe أبطأ. نظرا لأن مستوى Enterprise Flash يضع المفاتيح الأكثر استخداما بذكاء في DRAM، تأكد من أن تكوين المعيار الخاص بك يطابق الاستخدام الفعلي الذي تتوقعه. ضع في اعتبارك استخدام المعلمة -r لإضفاء عشوائي على المفاتيح التي يتم الوصول إليها.

  • يؤدي استخدام TLS/SSL إلى تقليل أداء معدل النقل، والذي يمكن رؤيته بوضوح في مثال بيانات القياس في الجداول التالية.

  • على الرغم من أن خادم Redis ذو مؤشر ترابط واحد، فإن التحجيم يميل إلى تحسين أداء معدل النقل. يمكن أن تستخدم عمليات النظام وحدات المعالجة المركزية الظاهرية الإضافية بدلا من مشاركة وحدة المعالجة المركزية الظاهرية التي تستخدمها عملية Redis. يعد التوسع مفيدا بشكل خاص على مستويات Enterprise وEnterprise Flash لأن Redis Enterprise لا يقتصر على مؤشر ترابط واحد. لمزيد من المعلومات، راجع أفضل ممارسات مستوى المؤسسة.

  • في المستوى Premium، يوصى عادة بالتطوير، والتكتتل، قبل التحجيم. يسمح التجميع لخادم Redis باستخدام المزيد من وحدات vCPUs عن طريق تقسيم البيانات. يجب أن يزيد معدل النقل خطيا تقريبا عند إضافة الأجزاء في هذه الحالة.

أمثلة مقياس Redis

إعداد ما قبل الاختبار: تجيز مثيل ذاكرة التخزين المؤقت بالبيانات المطلوبة لاختبار زمن الانتقال ومعدل النقل:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t SET -n 10 -d 1024

لاختبار زمن الانتقال: اختبر طلبات GET مستخدمًا حمولة 1k:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -d 1024 -P 50 -c 4

لاختبار معدل النقل: الطلبات GET ذات البنية الأساسية لبرنامج ربط العمليات التجارية مع حمولة من ألف:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

لاختبار معدل نقل ذاكرة التخزين المؤقت للطبقة الأساسية أو القياسية أو المتميزة باستخدام TLS: طلبات GET المتدفقة مع حمولة 1k:

redis-benchmark -h yourcache.redis.cache.windows.net -p 6380 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --tls

لاختبار معدل نقل ذاكرة التخزين المؤقت Enterprise أو Enterprise Flash بدون TLS باستخدام وضع نظام مجموعة OSS: طلبات GET المتدفقة مع حمولة 1k:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --cluster

مثال على بيانات معيار الأداء

تعرض الجداول التالية الحد الأقصى لقيم معدل النقل التي تمت ملاحظتها أثناء اختبار أحجام مختلفة من ذاكرة التخزين المؤقت Standard وPremium وEnterprise وEnterprise Flash. استخدمنا redis-benchmark من IaaS Azure VM مقابل نقطة نهاية Azure Cache for Redis. أرقام معدل النقل مخصصة لأوامر GET فقط. عادة ما يكون لأوامر SET معدل نقل أقل. تم تحسين هذه الأرقام لمعدل النقل. قد يكون معدل النقل في العالم الحقيقي في ظل ظروف زمن الانتقال المقبولة أقل.

تم استخدام التكوين التالي لقياس معدل النقل للمستويات الأساسية والقياسية والمتميزة:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

تنبيه

هذه القيم غير مضمونة ولا توجد اتفاقية على مستوى الخدمة لهذه الأرقام. نوصي بشدة بإجراء اختبار الأداء الخاص بك لتحديد حجم ذاكرة التخزين المؤقت المناسب للتطبيق الخاص بك. قد تتغير هذه الأرقام بشكل دوري في أثناء نشرنا لنتائج أحدث.

هام

تقوم Microsoft بتحديث الجهاز الظاهري الأساسي المستخدم في مثيلات ذاكرة التخزين المؤقت بشكل دوري. يمكن أن يؤدي هذا إلى تغيير خصائص الأداء من ذاكرة التخزين المؤقت إلى ذاكرة التخزين المؤقت ومن منطقة إلى أخرى. يعكس مثال قيم القياس في هذه الصفحة أجهزة ذاكرة التخزين المؤقت للجيل الأقدم في منطقة واحدة. قد ترى نتائج أفضل أو مختلفة في الممارسة العملية.

المستوى القياسي

‏‏مثيل الحجم وحدات vCPU النطاق الترددي المتوقع للشبكة (ميغابت في الثانية) طلبات GET في الثانية دون SSL (حجم قيمة 1 كيلوبايت) طلبات GET في الثانية مع SSL (حجم قيمة 1 كيلوبايت)
C0 250 ميغابايت مشتركة 100 15,000 7,500
C1 1 جيجابايت 1 500 38,000 20,720
جـ2 2.5 غيغابايت 2 500 41,000 37,000
C3 6 غيغابايت 4 1000 100,000 90,000
C4 13 جيجابيت 2 500 60,000 55,000
C5 26 جيجابيت 4 1,000 102,000 93,000
C6 53 جيجيابيت 8 2,000 126,000 120,000

مستوى متميز

‏‏مثيل الحجم وحدات vCPU النطاق الترددي المتوقع للشبكة (ميغابت في الثانية) طلبات GET في الثانية دون SSL (حجم قيمة 1 كيلوبايت) طلبات GET في الثانية مع SSL (حجم قيمة 1 كيلوبايت)
P1 6 غيغابايت 2 1,500 180,000 172,000
P2 13 جيجابيت 4 3,000 350,000 341,000
P3 26 جيجابيت 4 3,000 350,000 341,000
P4 53 جيجيابيت 8 6,000 400,000 373,000
P5 120 جيجابيت 32 6,000 400,000 373,000

هام

تستعمل مثيلات P5 في منطقتي شرق الصين وشمال الصين 20 نواة وليس 32 نواة.

مستويات Enterprise وEnterprise Flash

توفر مستويات Enterprise وEnterprise Flash خيارا لنهج المجموعة: Enterprise وOSS. نهج مجموعة المؤسسات هو تكوين أبسط لا يتطلب من العميل دعم التجميع. من ناحية أخرى، يستخدم نهج نظام مجموعة OSS بروتوكول نظام مجموعة Redis لدعم معدل النقل الأعلى. نوصي باستخدام نهج نظام مجموعة OSS في معظم الحالات. لمزيد من المعلومات، راجع التجميع على المؤسسة. يتم عرض معايير نهج نظام المجموعة في الجداول التالية.

تم استخدام التكوين التالي لقياس معدل النقل لمستويات فلاش المؤسسة والمؤسسة:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t GET -n 10000000 -d 1024 -P 50 -c 50 --threads 32

إشعار

هذا التكوين مطابق تقريبا للتكوين المستخدم لقياس المستويات الأساسية والقياسية والمتميزة. ومع ذلك، لم يستخدم التكوين السابق بشكل كامل أداء الحوسبة الأكبر لمستويات المؤسسة. تمت إضافة طلبات ومؤشرات ترابط إضافية إلى هذا التكوين من أجل إظهار الأداء الكامل.

نهج مجموعة المؤسسات

‏‏مثيل الحجم وحدات vCPU النطاق الترددي المتوقع للشبكة (ميغابت في الثانية) طلبات GET في الثانية دون SSL (حجم قيمة 1 كيلوبايت) طلبات GET في الثانية مع SSL (حجم قيمة 1 كيلوبايت)
E10 ⁧12 غيغابايت 4 4,000 300,000 207,000
E20 25 غيغابايت 4 4,000 680,000 480,000
E50 50 جيجا بايت 8 8000 1,200,000 900,000
E100 100 غيغابايت 16 10,000 1,700,000 1,650,000
F300 384 غيغابايت 8 3200 500,000 390,000
F700 715 غيغابايت 16 6400 500,000 370,000
F1500 1455 غيغابايت 32 12800 530,000 390,000

نهج نظام مجموعة OSS

‏‏مثيل الحجم وحدات vCPU النطاق الترددي المتوقع للشبكة (ميغابت في الثانية) طلبات GET في الثانية دون SSL (حجم قيمة 1 كيلوبايت) طلبات GET في الثانية مع SSL (حجم قيمة 1 كيلوبايت)
E10 ⁧12 غيغابايت 4 4,000 1,400,000 1,000,000
E20 25 غيغابايت 4 4,000 1,200,000 900,000
E50 50 جيجا بايت 8 8000 2,300,000 1,700,000
E100 100 غيغابايت 16 10,000 3,000,000 2,500,000
F300 384 غيغابايت 8 3200 1,500,000 1,200,000
F700 715 غيغابايت 16 6400 1,600,000 1,200,000
F1500 1455 غيغابايت 32 12800 1,600,000 1,110,000

Enterprise &Enterprise Flash Tiers - تم توسيع نطاقه

بالإضافة إلى التحجيم عن طريق الانتقال إلى حجم ذاكرة التخزين المؤقت الأكبر، يمكنك تعزيز الأداء عن طريق التوسع. في مستويات المؤسسة، يسمى التوسع بزيادة سعة مثيل ذاكرة التخزين المؤقت. يحتوي مثيل ذاكرة التخزين المؤقت بشكل افتراضي على سعة اثنين- ما يعني عقدة أساسية ونسخة متماثلة. يشير مثيل ذاكرة التخزين المؤقت للمؤسسة بسعة أربعة إلى أنه تم توسيع المثيل بعامل اثنين. يوفر التوسع إمكانية الوصول إلى المزيد من الذاكرة ووحدات المعالجة المركزية الظاهرية. يمكن العثور على تفاصيل حول عدد وحدات vCPUs التي تستخدمها عملية Redis الأساسية في كل حجم ذاكرة تخزين مؤقت وسعة في صفحة أفضل ممارسات مستويات المؤسسة. يعد التوسع أكثر فعالية عند استخدام نهج نظام مجموعة OSS.

تعرض الجداول التالية طلبات GET في الثانية بسعات مختلفة، باستخدام SSL وحجم قيمة 1 كيلوبايت.

التوسع - نهج مجموعة المؤسسات

‏‏مثيل السعة 2 السعة 4 السعة 6
E10 200,000 830,000 930,000
E20 480,000 710,000 950,000
E50 900,000 1,110,000 1,200,000
E100 1,600,000 1,120,000 1,200,000
‏‏مثيل السعة 3 السعة 9
F300 390,000 640,000
F700 370,000 610,000
F1500 390,000 670,000

التوسع - نهج نظام مجموعة OSS

‏‏مثيل السعة 2 السعة 4 السعة 6
E10 1,000,000 1,900,000 2,500,000
E20 900,000 1,700,000 2,300,000
E50 1,700,000 3,000,000 3,900,000
E100 2,500,000 4,400,000 4,900,000
‏‏مثيل السعة 3 السعة 9
F300 1,200,000 2,600,000
F700 1,200,000 2,600,000
F1500 1,100,000 2,800,000

الخطوات التالية