اختبار الأداء
يمكن أن يكون اختبار أداء مثيل Redis مهمة معقدة. يمكن أن يختلف أداء مثيل Redis استنادا إلى معلمات مثل عدد العملاء وحجم قيم البيانات وما إذا كان يتم استخدام الأنابيب. يمكن أن يكون هناك أيضا مقايضة بين تحسين معدل النقل أو زمن الانتقال.
لحسن الحظ، توجد العديد من الأدوات لجعل قياس Redis أسهل. اثنتان من الأدوات الأكثر شيوعا هما redis-benchmark وmemtier-benchmark. تركز هذه المقالة على redis-benchmark.
كيفية استخدام الأداة المساعدة redis-benchmark
قم بتثبيت مصدر مفتوح خادم Redis على جهاز ظاهري للعميل يمكنك استخدامه للاختبار. تم تضمين الأداة المساعدة redis-benchmark في توزيع مصدر مفتوح Redis. اتبع وثائق Redis للحصول على إرشادات حول كيفية تثبيت صورة مصدر مفتوح.
يجب أن يكون الجهاز الظاهري للعميل المستخدم للاختبار في نفس المنطقة مثل Azure Cache لمثيل Redis.
تأكد من أن الجهاز الظاهري للعميل الذي تستخدمه يحتوي على أقل قدر من الحوسبة والنطاق الترددي مثل مثيل ذاكرة التخزين المؤقت الذي يتم اختباره.
قم بتكوين إعدادات عزل الشبكة وجدار الحماية للتأكد من أن الجهاز الظاهري للعميل قادر على الوصول إلى Azure Cache لمثيل Redis.
إذا كنت تستخدم TLS/SSL على مثيل ذاكرة التخزين المؤقت، فأنت بحاجة إلى إضافة المعلمة
--tls
إلى أمر redis-benchmark أو استخدام وكيل مثل stunnel.Redis-benchmark
يستخدم المنفذ 6379 بشكل افتراضي. استخدم المعلمة-p
لتجاوز هذا الإعداد. تحتاج إلى استخدام-p
، إذا كنت تستخدم SSL/TLS (المنفذ 6380) أو تستخدم طبقة المؤسسة (المنفذ 10000).إذا كنت تستخدم Azure Cache لمثيل Redis الذي يستخدم التجميع، فستحتاج إلى إضافة المعلمة
--cluster
إلى الأمر الخاص بكredis-benchmark
. يمكن التعامل مع ذاكرة التخزين المؤقت لمستوى المؤسسة باستخدام نهج تجميع المؤسسة كذاكرة تخزين مؤقت غير متفاوتة المسافات ولا تحتاج إلى هذا الإعداد.ابدأ من
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 |