अनिवार्य है
pgbench (आधिकारिक PostgreSQL टूल, वर्कलोड TPC-B के करीब) और sysbench-tpcc (TPC-C वर्कलोड वास्तविक लेनदेन भार का अधिक प्रतिनिधि) दोनों सीधे आपके Aurabase प्रोजेक्ट के मानक Postgres 16 कनेक्शन स्ट्रिंग के विरुद्ध चलते हैं - बाईपास करने के लिए कोई स्वामित्व API नहीं है। यह ट्यूटोरियल वास्तविक ऑर्डर दिखाता है, और जीएसटी का जो आंकड़ा वैध रूप से साबित हो सकता है वह कहां समाप्त होता है।
सरलता के लिए पीजीबेंच, यथार्थवाद के लिए सिसबेंच-टीपीसीसी
pgbench को PostgreSQL के साथ ही वितरित किया जाता है: यदि आपके पास पहले से ही Postgres क्लाइंट टूल हैं तो क्लाइंट पर कोई अलग इंस्टॉलेशन नहीं है। Its default workload reproduces a load close to the historical TPC-B benchmark — simple, quick to launch, useful for a first signal.
sysbench एक अधिक सामान्य बेंचमार्क टूल है, जिसमें sysbench-tpcc प्लगइन है जो टीपीसी-सी वर्कलोड को दोहराता है - एक वास्तविक ओएलटीपी एप्लिकेशन (ऑर्डर, भुगतान, इन्वेंट्री) के लेनदेन प्रतिनिधि का मिश्रण, सामान्य पीजीबेंच वर्कलोड की तुलना में उत्पादन में आपके ऑराबेस बैकएंड को संभालने के करीब।
कनेक्शन स्ट्रिंग पुनर्प्राप्त करें और एक समर्पित परीक्षण आधार बनाएं
1
ऑराबेस डैशबोर्ड से कनेक्शन स्ट्रिंग पुनर्प्राप्त करें
आपके प्रोजेक्ट का डेटाबेस अनुभाग, मानक postgresql://user:password@host:5432/dbnameप्रारूप।
2
एक अलग परीक्षण आधार बनाएं, अपना उत्पादन आधार कभी नहीं
psql "$AURABASE_CONN" -c "डेटाबेस बेंच_टेस्ट बनाएं;"
pgbench और sysbench-tpcc तालिकाएँ बनाते, भरते और संशोधित करते हैं। हमेशा एक समर्पित आधार का उपयोग करें, कभी भी ऐसी योजना का उपयोग न करें जो वास्तविक ट्रैफ़िक प्रदान करती हो।
आरंभ करें और पहला रन लॉन्च करें
1
डेटासेट प्रारंभ करें
pgbench -i -s 10 "postgresql://user:pass@host:5432/bench_test" # -s 10 = स्केल फ़ैक्टर (pgbench_accounts में 10 × 100,000 पंक्तियाँ)
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 प्लगइन स्थापित करें
गिट क्लोन https://github.com/Percona-Lab/sysbench-tpcc.git # प्लगइन संकलित करने के लिए रिपॉजिटरी के README का पालन करें
2
टीपीसी-सी डेटासेट तैयार करें
./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 --रिपोर्ट-अंतराल=10 रन
PostgreSQL को समर्पित एक sysbench-tpcc ट्यूनिंग गाइड पेरकोना द्वारा मई 2026 में प्रकाशित किया गया था - प्रतिनिधि रन चलाने से पहले shared_buffers और work_mem को ट्यून करने के लिए उपयोगी।
अकेले जीएसटी का आंकड़ा क्या साबित नहीं करता
टीपीएस स्केल फैक्टर, समवर्ती क्लाइंट की संख्या, अंतर्निहित हार्डवेयर और रन के समय सक्रिय पोस्टग्रेज सेटिंग्स पर निर्भर करता है। अलग-अलग मापदंडों के साथ प्राप्त दो समय के आंकड़े तुलनीय नहीं हैं, यहां तक कि एक ही डेटाबेस पर भी।
आपके परिणाम को प्रतिलिपि प्रस्तुत करने योग्य संदर्भ के रूप में काम करने के लिए, व्यवस्थित रूप से दस्तावेज़: पोस्टग्रेज संस्करण, स्केल फैक्टर, क्लाइंट/थ्रेड्स की संख्या, रन अवधि, और प्रभावी postgresql.conf कॉन्फ़िगरेशन। किसी आंकड़े को प्रकाशित करने से पहले हम जिस प्रोटोकॉल को लागू करते हैं, उसके लिए हमारी पूरी बेंचमार्क पद्धति देखें।
रन पुनः आरंभ करने से पहले पोस्टग्रेज को ट्यून करना
एक बेंचमार्क रन अक्सर किसी भी समायोजन से पहले एक अड़चन का खुलासा करता है - संतृप्त कनेक्शन, लैगिंग ऑटोवैक्यूम, लापता सूचकांक। हमारा उत्पादन में ट्यूनिंग चेकलिस्ट पोस्ट करता है और max_connections साइजिंग पर हमारा लेख रन को पुनरारंभ करने से पहले जांचने के लिए सेटिंग्स को कवर करता है।