Odoo کے لیے # PostgreSQL پرفارمنس آپٹیمائزیشن: ٹیوننگ، انڈیکسنگ، اور مانیٹرنگ
**ایک مناسب طریقے سے ٹیون کردہ PostgreSQL مثال ڈیفالٹ سیٹنگز کے مقابلے Odoo کے جوابی اوقات کو 2-5x تک بہتر بنا سکتی ہے۔ ** Odoo کی کارکردگی کے زیادہ تر مسائل ڈیٹا بیس کنفیگریشن پر واپس آتے ہیں -- ڈیفالٹ PostgreSQL سیٹنگز کو کم سے کم وسائل کے استعمال کے لیے ڈیزائن کیا گیا ہے، نہ کہ ملٹی یوزر ERP سسٹم کو طاقت دینے کے لیے۔
اہم ٹیک ویز
- ڈیفالٹ PostgreSQL سیٹنگز صرف 128MB مشترکہ بفرز استعمال کرتی ہیں -- پروڈکشن Odoo کو 25% RAM کی ضرورت ہوتی ہے
- کثرت سے پوچھے جانے والے کالموں پر گمشدہ اشاریہ جات مکمل ٹیبل اسکین اور سست صفحہ لوڈ کا سبب بنتے ہیں
- پی جی باؤنسر کے ساتھ کنکشن پولنگ ڈیٹا بیس کنکشن اوور ہیڈ کو 80% تک کم کر دیتا ہے
- باقاعدگی سے ویکیوم اور تجزیہ ٹیبل بلوٹ کو روکتا ہے اور استفسار کے منصوبوں کو بہترین رکھتا ہے
PostgreSQL کنفیگریشن ٹیوننگ
میموری کی ترتیبات
اپنے ہارڈ ویئر کے لیے مناسب ترتیبات کے ساتھ postgresql.conf میں ترمیم کریں۔ 16GB RAM والے سرور کے لیے، shared_buffers کو 4GB (کل RAM کا 25%)، موثر_cache_size کو 12GB (کل RAM کا 75%)، work_mem کو 64MB فی آپریشن، maintenance_work_mem کو 1GB، اور wal_buffers کو 64MB پر سیٹ کریں۔
استفسار کی منصوبہ بندی کے لیے، SSD اسٹوریج کے لیے random_page_cost کو 1.1 پر سیٹ کریں (پہلے سے طے شدہ 4.0 HDD فرض کرتا ہے)، SSDs کے لیے effective_io_concurrency 200 پر، اور مزید درست استفسار کے منصوبوں کے لیے default_statistics_target کو 200 پر سیٹ کریں۔
سائزنگ کے رہنما خطوط:
| سرور RAM | مشترکہ_بفرز | موثر_کیشے_سائز | کام_میم | |------------|---------------|------------| | 4GB | 1GB | 3GB | 16MB | | 8GB | 2GB | 6GB | 32MB | | 16GB | 4GB | 12 جی بی | 64MB | | 32 جی بی | 8GB | 24 جی بی | 128MB | | 64 جی بی | 16GB | 48GB | 256MB |
کنکشن کی ترتیبات
max_connections کو کم از کم Odoo کارکنوں x 2 پلس بفر پر سیٹ کریں۔ 4 ورکرز اور 2 کرون تھریڈز کے ساتھ، آپ کو کم از کم 12 کنکشنز کی ضرورت ہے۔ ایڈمن ٹولز، مانیٹرنگ، اور بیک گراؤنڈ ٹاسکس کے لیے کنکشن شامل کریں۔ 200 کی قدر آرام دہ ہیڈ روم فراہم کرتی ہے۔
اوڈو کے لیے اشاریہ سازی کی حکمت عملی
گمشدہ اشاریہ جات کی نشاندہی کرنا
log_min_duration_statement کو 500ms پر سیٹ کرکے سست استفسار لاگنگ کو فعال کریں۔ پھر مکمل ٹیبل اسکینز کی شناخت کے لیے سست استفسار لاگ کا تجزیہ کریں۔
عام اوڈو اشاریہ جات
Odoo بنیادی کلیدوں اور غیر ملکی کلیدوں پر خود بخود اشاریہ جات بناتا ہے۔ کثرت سے فلٹر کیے جانے والے کالموں پر انڈیکس شامل کریں جیسے sale_order(state), account_move(state), stock_move(state), account_move(date), and sale_order(date_order)۔
ملٹی کالم انڈیکس عام فلٹر کے مجموعوں کو بہتر بناتے ہیں: account_move_line(account_id، date) اور stock_quant(product_id، location_id)۔
اسٹیٹس کالم کے ساتھ ٹیبلز کے لیے، فعال ریکارڈز پر جزوی اشاریہ جات زیادہ کارآمد ہوتے ہیں -- انڈیکس صرف قطاریں جہاں ریاست کو منسوخ یا مکمل نہیں کیا گیا ہے۔
وضاحتی تجزیہ کے ساتھ سوال کا تجزیہ
عملدرآمد کے منصوبوں کو سمجھنے کے لیے سست سوالات پر EXPLAIN (تجزیہ، بفرز) چلائیں۔ تلاش کریں:
- Seq اسکین: مکمل ٹیبل اسکین گمشدہ انڈیکس کی نشاندہی کرتا ہے۔
- نیسٹڈ لوپ: بڑے رزلٹ سیٹ کے ساتھ مہنگا ہو سکتا ہے۔
- چھانٹیں: ڈسک میں ورک_میم اسپل سے زیادہ میموری میں ترتیب
- بفرز مشترکہ پڑھیں: اعلی اقدار کا مطلب ہے کہ ڈیٹا کیش نہیں ہے۔
عام کارکردگی کے قاتل:
- WHERE شق کے کالموں پر گمشدہ اشاریہ جات
- Odoo ORM کے ذریعے تیار کردہ بڑی IN شقیں۔
- ذخیرہ شدہ کمپیوٹنگ فیلڈز تحریروں پر دوبارہ گنتی کو متحرک کرتے ہیں۔
- 5+ جدولوں میں شامل ہونے والے پیچیدہ رپورٹ کے سوالات
ویکیوم اور دیکھ بھال
پوسٹگری ایس کیو ایل ایم وی سی سی ڈیڈ ٹیپلز بناتا ہے جب قطاروں کو اپ ڈیٹ یا حذف کیا جاتا ہے۔ VACUUM اس جگہ پر دوبارہ دعوی کرتا ہے اور اعداد و شمار کو اپ ڈیٹ کرتا ہے۔
Odoo کام کے بوجھ کے لیے آٹو ویکیوم کو ترتیب دیں: 3 زیادہ سے زیادہ کارکنوں کے ساتھ آٹو ویکیوم کو فعال کریں، 60 سیکنڈ کا نیپ ٹائم، 0.05 کا ویکیوم اسکیل فیکٹر، اور 0.02 کے اسکیل فیکٹر کا تجزیہ کریں۔ ہائی رائٹ ٹیبلز کے لیے (اکاؤنٹ_موو_لائن، اسٹاک_موو، میل_پیغام)، زیادہ جارحانہ فی ٹیبل سیٹنگز سیٹ کریں۔
ٹوٹل ریلیشن سائز اور ڈیڈ ٹوپل کی گنتی کی جانچ کرکے ٹیبل بلوٹ کی نگرانی کریں۔ ویکیوم فل استعمال کریں صرف انتہائی پھولنے کے لیے (50% سے زیادہ ڈیڈ اسپیس) اور صرف مینٹیننس ونڈوز کے دوران کیونکہ یہ ٹیبل کو لاک کر دیتا ہے۔
پی جی باؤنسر کے ساتھ کنکشن پولنگ
PgBouncer Odoo اور PostgreSQL کے درمیان بیٹھتا ہے، اوور ہیڈ کو کم کرنے کے لیے کنکشن کو پولنگ کرتا ہے۔ Odoo کے لیے ٹرانزیکشن پول موڈ استعمال کریں، جو لین دین کے درمیان کنکشن جاری کرتا ہے۔ ڈیفالٹ_پول_سائز کو 40 اور max_client_conn کو 200 پر سیٹ کریں۔ براہ راست PostgreSQL کے بجائے Odoo کو PgBouncer پورٹ کی طرف اشارہ کریں۔
نگرانی
ضروری میٹرکس
- ایکٹو کنکشن: زیادہ سے زیادہ کنکشنز سے نیچے رہنا چاہیے۔
- کیشے ہٹ کا تناسب: 99% سے زیادہ ہونا چاہیے
- لین دین کی شرح: بیس لائن اور بے ضابطگیوں پر نظر رکھیں
- سست استفسار کی گنتی: آپ کی حد سے زیادہ سوالات
- نقل کا وقفہ: اگر پڑھی ہوئی نقلیں استعمال کررہے ہیں۔
- ڈسک کا استعمال: ڈیٹا بیس کے سائز میں اضافے کی شرح
- ٹیبل بلوٹ: ڈیڈ ٹیپل تناسب فی ٹیبل
وقت کے ساتھ استفسار کی کارکردگی کو ٹریک کرنے کے لیے pg_stat_statements ایکسٹینشن استعمال کریں۔ یہ عمل درآمد کی گنتی، کل وقت، اوسط وقت، اور ہر الگ الگ سوال کے پیٹرن کے لیے واپس آنے والی قطاروں کو ریکارڈ کرتا ہے۔
اکثر پوچھے گئے سوالات
س: میں کیسے جان سکتا ہوں کہ پوسٹگری ایس کیو ایل رکاوٹ ہے؟
سست استفسار لاگنگ کو فعال کریں اور Odoo کارکردگی لاگز کو چیک کریں۔ اگر زیادہ تر سست درخواستیں سست سوالات سے مطابقت رکھتی ہیں تو ٹیوننگ مدد کرے گی۔ اگر استفسارات تیز ہیں لیکن Odoo سست ہے، تو رکاوٹ ایپلیکیشن کوڈ یا نیٹ ورک میں ہے۔
س: کیا مجھے Odoo کے لیے PostgreSQL نقلیں استعمال کرنی چاہئیں؟
پرائمری ڈیٹا بیس سے replicas آف لوڈ رپورٹنگ کے سوالات پڑھیں۔ Odoo مقامی طور پر پڑھنے/لکھنے کی تقسیم کی حمایت نہیں کرتا ہے، اس لیے حسب ضرورت کنفیگریشن روٹس صرف پڑھنے کے لیے سوالات نقل کرتا ہے۔ یہ بنیادی طور پر بہت بڑی تعیناتیوں کے لیے مفید ہے۔
س: مجھے Odoo کے ساتھ کون سا PostgreSQL ورژن استعمال کرنا چاہیے؟
اپنے Odoo ورژن کے ذریعے تعاون یافتہ تازہ ترین مستحکم ریلیز استعمال کریں۔ نئے ورژنز میں استفسار کی اصلاح میں بہتری اور ویکیوم کی بہتر کارکردگی شامل ہے۔ PostgreSQL 16 یا 17 موجودہ Odoo ورژن کے لیے تجویز کیے جاتے ہیں۔
سوال: صحیح ٹیوننگ دراصل کتنی مدد کرتی ہے؟
ہمارے تجربے میں، ڈیفالٹ سیٹنگز سے ٹیونڈ کنفیگریشن میں منتقل ہونے سے عام طور پر صفحہ لوڈ کرنے کے اوسط اوقات میں 40-60% اضافہ ہوتا ہے اور سست استفسار کی فریکوئنسی 80-90% تک کم ہوتی ہے۔ بہتری ڈرامائی اور فوری ہے۔
آگے کیا ہے۔
PostgreSQL ٹیوننگ Odoo کی کارکردگی کے لیے واحد سب سے زیادہ اثر والی اصلاح ہے۔ میموری کی ترتیبات اور اشاریہ سازی کے ساتھ شروع کریں -- اکیلے یہ دو تبدیلیاں اکثر جوابی اوقات کو نصف میں کم کر دیتی ہیں۔
ڈیٹا بیس کو بہتر بنانے میں مدد کے لیے ECOSIRE سے رابطہ کریں، یا جاری کارکردگی کے انتظام کے لیے ہماری Odoo سپورٹ سروسز کو دریافت کریں۔
ECOSIRE کے ذریعہ شائع کیا گیا -- انٹرپرائز سوفٹ ویئر کے حل کے ساتھ کاروبار کو پیمانے میں مدد کرنا۔
تحریر
ECOSIRE Research and Development Team
ECOSIRE میں انٹرپرائز گریڈ ڈیجیٹل مصنوعات بنانا۔ Odoo انٹیگریشنز، ای کامرس آٹومیشن، اور AI سے چلنے والے کاروباری حل پر بصیرت شیئر کرنا۔
متعلقہ مضامین
blog.posts.allegro-odoo-integration-poland.title
blog.posts.allegro-odoo-integration-poland.description
blog.posts.ap-automation-odoo-guide.title
blog.posts.ap-automation-odoo-guide.description
blog.posts.choosing-crm-guide.title
blog.posts.choosing-crm-guide.description