باختصار
- أُجري اختبار أداء لخدمة Postgres managed by ClickHouse مقارنةً مع AWS RDS (16k provisioned IOPS) وAurora IO Optimized باستخدام اختبارات
pgbench القياسية
- الأداء: يوفّر Postgres من ClickHouse والمدعوم بأقراص NVMe أداءً أسرع بمقدار 4.3 إلى 9 مرات في workloads كثيفة الـIO، وأسرع بنسبة 12% في السيناريوهات المقيّدة بالـ CPU
- مثالي لـأعباء العمل المدفوعة بالذكاء الاصطناعي سريعة النمو التي تتطلب معدلات transaction مرتفعة، ووصولًا منخفض الكمون إلى البيانات، وأداءً متوقعًا من دون اختناقات IO
نظرة عامة على الاختبارات المعيارية
أجرينا اختبارات أداء شاملة باستخدام pgbench، أداة PostgreSQL القياسية للاختبارات المعيارية، لتقييم أداء أعباء العمل في سيناريوهات التزامن المتوسط والعالي.
أُجريت جميع اختبارات الأداء باستخدام آلة افتراضية عميلة تتمتع بقدرة حوسبة مماثلة، وكانت موجودة في المنطقة نفسها ونطاق التوافر نفسه لقاعدة بيانات PostgreSQL لضمان إجراء مقارنة عادلة.
الاختبار 1: كثيف الإدخال/الإخراج - قراءة+كتابة (مجموعة بيانات بحجم 500 جيجابايت)
تحسّن الأداء مقارنةً بـ RDS (16k IOPS):
- TPS أعلى بنسبة 326% (أسرع بمقدار 4.3x)
تحسّن الأداء مقارنةً بـ Aurora IO Optimized:
- TPS أعلى بنسبة 345% (أسرع بمقدار 4.5x)
التحليل: تُبرز أعباء العمل المختلطة بين القراءة والكتابة أوضح مزايا الأداء التي يوفرها تخزين NVMe، وتمثل السيناريو الأكثر واقعية لأعباء العمل سريعة النمو أعباء العمل المدفوعة بالذكاء الاصطناعي التي تتطلب كلاً من استيعاب البيانات بمعدل نقل مرتفع وعمليات قراءة بزمن استجابة منخفض. وقد حقق Postgres managed by ClickHouse معدل 19.8K TPS مع تزامن أعلى، مما يوضح كيف يتوسع تخزين NVMe بكفاءة تحت الضغط. وهذا يجعله أسرع بمقدار 4.3-4.5x من RDS وAurora. في المقابل، واجهت حلول التخزين المتصل بالشبكة صعوبة في العمليات التي يغلب عليها الطابع الكتابي، إذ بلغ الحد الأقصى لكل من RDS وAurora ما بين 4.4K و4.6K TPS رغم السعة المخصصة، وحتى مع إعداد Aurora IO Optimized.
يقيّم هذا الاختبار أداء القراءة والكتابة المختلط على مجموعة بيانات كبيرة بحجم 500 GB، مع تحميل مساري القراءة والكتابة في النظام الفرعي للتخزين.
تكوين المثيل:
| الإعداد | Postgres managed by ClickHouse | RDS with 16k IOPS | Aurora IO Optimized |
|---|
| إصدار PG | 17 | 17 | 17 |
| vCPUs | 16 | 16 | 16 |
| RAM | 64 GB | 64 GB | 128 GB |
| حجم القرص | 1 TB | 1 TB | 1 TB |
| نوع القرص | NVMe (IOPS غير محدود) | متصل بالشبكة (16,000 IOPS) | متصل بالشبكة (IO Optimized) |
تكوين الاختبار:
# Initialize database (500 GB dataset)
pgbench -i -s 34247
# Read+Write benchmark
pgbench -c 256 -j 16 -T 600 -M prepared -P 30
الاختبار 2: كثيف عمليات الإدخال/الإخراج - للقراءة فقط (مجموعة بيانات بحجم 500 جيجابايت)
تحسّن الأداء مقارنةً بـ RDS (16k IOPS):
- زيادة بنسبة 802% في TPS (أسرع بمقدار 9.0x)
التحليل: تتسع فجوة الأداء بشكل كبير في أعباء العمل كثيفة القراءة والمقيّدة بعمليات الإدخال/الإخراج. حقق Postgres managed by ClickHouse 84.8K TPS، بينما لم يحقق RDS مع 16,000 IOPS مخصصة سوى 9.4K TPS رغم امتلاكه موارد حوسبة مماثلة. ويكمن الفرق الأساسي في أن تخزين NVMe لدى ClickHouse يتوسع مع زيادة التزامن، بينما يظل التخزين المتصل بالشبكة مقيّدًا بحدود IOPS المخصصة. وحتى مع IOPS المخصصة، ظل RDS أبطأ بتسع مرات من ClickHouse، ما يبرز الأهمية الحاسمة لبنية التخزين في أعباء العمل كثيفة الإدخال/الإخراج.
يقيّم هذا الاختبار أداء القراءة باستخدام مجموعة بيانات كبيرة بحجم 500 GB لا تتسع بالكامل في الذاكرة، مما يختبر قدرات إدخال/إخراج القرص تحت الضغط.
تكوين المثيل:
| الإعداد | Postgres managed by ClickHouse | RDS with 16k IOPS |
|---|
| إصدار PG | 17 | 17 |
| vCPUs | 16 | 16 |
| RAM | 64 GB | 64 GB |
| حجم القرص | 1 TB | 1 TB |
| نوع القرص | NVMe (IOPS غير محدود) | متصل بالشبكة (16,000 IOPS) |
تكوين الاختبار:
# Initialize database (500 GB dataset)
pgbench -i -s 34247
# Read-only benchmark
pgbench -c 256 -j 16 -T 600 -M prepared -P 30 -S
الاختبار 3: مكثّف الاستخدام للـ CPU (البيانات تتّسع في الذاكرة)
تحسّن الأداء:
- TPS أعلى بنسبة 12.3% مقارنةً بـ RDS PostgreSQL
التحليل: حتى في السيناريوهات المقيّدة بالـ CPU حيث يكون إدخال/إخراج القرص في حدّه الأدنى، تصدّر Postgres managed by ClickHouse بنتيجة 36.5 ألف TPS. وعلى الرغم من وصول الخدمتين كلتيهما إلى استخدام CPU بنسبة 100%، فقد وفّر تخزين NVMe من ClickHouse أداءً أفضل مع معدلات إصابة أعلى للـ cache. وتُظهر الأفضلية البالغة 12% على RDS كفاءة البنية التحتية الأساسية حتى عندما تكون أعباء العمل مقيّدة بالـ CPU بالدرجة الأولى.
يقيّم هذا الاختبار أداء CPU عندما تتسع مجموعة البيانات العاملة بالكامل في الذاكرة، مما يقلّل من تأثير عمليات الإدخال/الإخراج للقرص.
تكوين المثيل:
| التكوين | Postgres managed by ClickHouse | RDS PostgreSQL |
|---|
| إصدار PG | 17 | 17 |
| vCPUs | 2 | 2 |
| RAM | 8 GB | 8 GB |
| نوع القرص | NVMe | متصل عبر الشبكة (gp3) |
تكوين الاختبار:
# Initialize database (2 GB dataset)
pgbench -i -s 136
# Warm-up run to load dataset into memory
pgbench -c 1 -T 60 -S -M prepared
# Run benchmark (read-only, prepared statements)
pgbench -c 32 -j 16 -T 300 -S -M prepared -P 30
في جميع سيناريوهات اختبار الأداء الثلاثة، قدّم Postgres managed by ClickHouse أداءً متفوقًا باستمرار:
- أعباء العمل المكثفة للقراءة والكتابة من حيث IO: معدل TPS أعلى بمقدار 4.3-4.5 مرة مقارنةً بـ RDS (16k IOPS) وAurora IO Optimized
- أعباء العمل المكثفة للقراءة من حيث IO: معدل TPS أعلى بمقدار 9 مرات مقارنةً بـ RDS with 16k IOPS
- أعباء العمل المقيّدة بالـ CPU: معدل TPS أعلى بنسبة 12% مقارنةً بـ RDS
متى يتفوّق Postgres by ClickHouse
يُعد Postgres by ClickHouse مثاليًا للتطبيقات التي:
- تشغّل أعباء عمل مدفوعة بالذكاء الاصطناعي وسريعة النمو وتتطلب استيعاب البيانات بمعدل نقل عالٍ، مع عمليات upsert متكررة، وتحديثات للسمات في الوقت الفعلي، وإمكانات تحليلات مدمجة عبر تكامل سلس مع ClickHouse لأعباء عمل OLAP
- تُجري عمليات كتابة أو تحديث متكررة، أو عمليات قراءة/كتابة مختلطة
- تحتاج إلى تخزين عالي الأداء ويمكن التنبؤ بأدائه
- تكون مقيّدة حاليًا بحدود IOPS في خدمات Postgres المُدارة التقليدية
إذا كنت تتوقع الحاجة إلى التحليلات لاحقًا وتتوقع تكاملًا أعمق مع ClickHouse — وهو أمر شائع في أعباء عمل الذكاء الاصطناعي الحديثة حيث تغذي البيانات المعاملاتية لوحات المعلومات في الوقت الفعلي، ومخازن السمات، ومسارات تعلّم الآلة — فينبغي أن يكون Postgres by ClickHouse خيارك الافتراضي الأول. يزيل التكامل الأصلي تعقيد مسارات ETL ويُتيح تدفقًا سلسًا للبيانات بين قاعدة بياناتك التشغيلية والاستعلامات التحليلية.
تنبع ميزة الأداء من الاختلاف الجوهري في المعمارية:
| الجانب | تخزين NVMe (Managed Postgres) | التخزين المتصل بالشبكة (Provisioned IOPS) |
|---|
| IOPS | من 100 ألف إلى شبه غير محدود | 16,000 مخصصة |
| مرات العبور عبر الشبكة | صفر (جهاز محلي) | تتطلب كل عملية على القرص رحلة ذهاب وإياب عبر الشبكة |
| توسع الأداء | يتوسع خطيًا مع التزامن | محدود بعدد IOPS المخصصة |
لمزيد من التفاصيل حول مزايا الأداء التي يوفرها تخزين NVMe، راجع الأداء المدعوم بـ NVMe.
إلى جانب الأداء الخام، يوفّر Postgres managed by ClickHouse تفوقًا واضحًا في السعر مقابل الأداء:
- إنتاجية أعلى مقابل كل دولار: حقّق TPS أعلى بمقدار 4 إلى 9 مرات مقارنةً بـ RDS مع 16k provisioned IOPS وAurora IO Optimized
- تكاليف متوقعة: لا حاجة إلى تخصيص سعة IOPS إضافية، إذ إن IOPS المحلية غير المحدودة مشمولة
- متطلبات حوسبة أقل: حقّق الأداء المستهدف باستخدام أحجام instance أصغر بفضل كفاءة I/O
- حاجة أقل إلى read replicas: تقلّل الإنتاجية الأعلى للمثيل الواحد الحاجة إلى horizontal scaling
بالنسبة إلى workloads المقيّدة حاليًا بحدود IOPS، يمكن أن يؤدي الانتقال إلى Managed Postgres إلى إلغاء الحاجة إلى provisioned IOPS المكلفة أو تهيئات IO Optimized، مع تحقيق أداء أفضل بكثير.
تتوفر بيانات اختبار الأداء الكاملة، والإعدادات، والمقاييس التفصيلية في جدول بيانات نتائج اختبار الأداء.
آخر تعديل في ٢٥ يونيو ٢٠٢٦