الأساسيات
pgbench (أداة PostgreSQL الرسمية، عبء عمل قريب من TPC-B) و sysbench-tpcc (عبء عمل TPC-C أكثر تمثيلاً لحمل المعاملات الحقيقي) كلاهما يعملان مباشرة مقابل سلسلة اتصال Postgres 16 القياسية لمشروع Aurabase الخاص بك - لا توجد واجهة برمجة تطبيقات خاصة لتجاوزها. يوضح هذا البرنامج التعليمي الطلبات الفعلية، وأين يمكن أن ينتهي رقم ضريبة السلع والخدمات (GST) بشكل شرعي.
pgbench للبساطة، sysbench-tpcc للواقعية
يتم توزيع pgbench مع PostgreSQL نفسها: لا يوجد تثبيت منفصل على العميل إذا كان لديك بالفعل أدوات عميل Postgres. يقوم عبء العمل الافتراضي الخاص به بإعادة إنتاج حمل قريب من معيار TPC-B التاريخي - وهو بسيط وسريع التشغيل ومفيد للإشارة الأولى.
sysbench هي أداة قياس أداء أكثر عمومية، مع مكون إضافي sysbench-tpcc يكرر عبء عمل TPC-C - مزيج من المعاملات التي تمثل تطبيق OLTP حقيقي (الطلبات والمدفوعات والمخزون)، أقرب إلى ما تعالجه الواجهة الخلفية لـ Aurabase في الإنتاج من عبء عمل pgbench العام.
قم باسترداد سلسلة الاتصال وإنشاء قاعدة اختبار مخصصة
1
استرجع سلسلة الاتصال من لوحة معلومات Aurabase
قسم قاعدة البيانات لمشروعك، التنسيق القياسي postgresql://user:password@host:5432/dbname.
2
قم بإنشاء قاعدة اختبار منفصلة، وليس قاعدة الإنتاج الخاصة بك أبدًا
psql "$AURABASE_CONN" -c "إنشاء قاعدة بيانات bench_test؛"
يقوم كل من pgbench وsysbench-tpcc بإنشاء الجداول وملؤها وتعديلها. استخدم دائمًا قاعدة مخصصة، وليس مخططًا يخدم حركة مرور حقيقية.
تهيئة وإطلاق الجولة الأولى
1
تهيئة مجموعة البيانات
pgbench -i -s 10 "postgresql://user:pass@host:5432/bench_test" # -s 10 = عامل القياس (10 × 100000 صف في حسابات pgbench)
2
قم بإجراء جولة مدتها 60 ثانية، مع 10 عملاء متنافسين
pgbench -c 10 -j 2 -T 60 -P 5 "postgresql://user:pass@host:5432/bench_test" # -c = العملاء المتزامنين · -j = سلاسل الرسائل · -T = المدة بالثواني · -P = تقرير كل 5 ثوانٍ
3
اقرأ النتيجة
يعرض pgbench tps (المعاملات في الثانية) في نهاية التشغيل، مع وبدون وقت الاتصال. لاحظ عامل القياس وعدد العملاء ومدة التشغيل - بدون هذه المعلمات الثلاثة، فإن الرقم وحده لا يعني شيئًا.
عبء عمل المعاملات أكثر تمثيلا
1
قم بتثبيت sysbench والمكون الإضافي tpcc
git clone https://github.com/Percona-Lab/sysbench-tpcc.git # اتبع README الخاص بالمستودع لتجميع البرنامج المساعد
2
إعداد مجموعة البيانات TPC-C
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 تحضير
3
ابدأ الجري
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 --time=300 --threads=16 --report-interval=10 تشغيل
تم نشر دليل ضبط sysbench-tpcc المخصص لـ PostgreSQL بواسطة Percona في مايو 2026 - وهو مفيد لضبط shared_buffers وwork_mem قبل تشغيل تشغيل تمثيلي.
ما لا يثبته رقم ضريبة السلع والخدمات وحده
يعتمد tps على عامل القياس وعدد العملاء المتزامنين والأجهزة الأساسية وإعدادات Postgres النشطة في وقت التشغيل. الأرقام الزمنية التي تم الحصول عليها باستخدام معلمات مختلفة غير قابلة للمقارنة، حتى في نفس قاعدة البيانات.
لكي تكون نتيجتك بمثابة مرجع قابل للتكرار، قم بتوثيق بشكل منهجي: إصدار Postgres، وعامل القياس، وعدد العملاء/سلاسل المحادثات، ومدة التشغيل، والتكوين الفعال postgresql.conf. اطلع على منهجية قياس الأداء الكاملة للتعرف على البروتوكول الذي نطبقه قبل نشر الشكل.
ضبط Postgres قبل إعادة تشغيل التشغيل
غالبًا ما يكشف التشغيل المعياري عن عنق الزجاجة قبل أي تعديل - اتصالات مشبعة، وفراغ تلقائي متخلف، ومؤشر مفقود. لدينا قائمة ضبط Postgres في الإنتاج ومقالنا عن max_connections sizing يغطي الإعدادات للتحقق قبل إعادة تشغيل التشغيل.