0Pricing
SQL Academy · درس

تخطيط السعة وتدقيق التضخم

توقّع نمو مساحة القرص وIOPS، ودقّق تضخم الجداول والفهارس بانتظام، وخطّط للترقيات قبل نفاد المساحة

تخطيط السعة وتدقيق التضخم درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

ما الذي يجب توقّعه

لتحديد حجم قاعدة البيانات المناسب للأشهر الستة إلى الاثني عشر القادمة، تحتاج إلى توقّع ما يلي:

  • استخدام القرص، بما في ذلك البيانات وWAL والفهارس
  • الطلب على IOPS
  • مجموعة العمل الموجودة في RAM
  • عدد الاتصالات

نمو مساحة القرص

تتبّع اتجاه النمو الحديث:

SELECT pg_size_pretty(pg_database_size(current_database()));
SELECT pg_size_pretty(pg_total_relation_size(t.oid)) AS total,
       relname
FROM pg_class t
WHERE relkind = 'r'
ORDER BY pg_total_relation_size(t.oid) DESC LIMIT 20;

تتبّع النمو حسب الجدول

جدول مهمة لتسجيل المقاييس واعرضها بيانيًا:

INSERT INTO size_history (ts, tablename, size_bytes)
SELECT NOW(), relname, pg_total_relation_size(oid)
FROM pg_class WHERE relkind = 'r';

تقدير IOPS

تظهر الجداول الأكثر استخدامًا لعمليات الإدخال والإخراج في pg_stat_user_tables:

SELECT relname, seq_tup_read, idx_tup_fetch,
       seq_tup_read + idx_tup_fetch AS total_reads
FROM pg_stat_user_tables
ORDER BY total_reads DESC LIMIT 20;

تحديد حجم RAM

shared_buffers ≈ 25% من RAM. effective_cache_size ≈ 75%، وهو تلميح للمخطط وليس تخصيصًا. يجب ألا يتجاوز work_mem لكل اتصال × عدد الاتصالات مقدار RAM المتاح.

تدقيق التضخم

اعثر على الجداول التي تحتوي على أكبر عدد من الصفوف الميتة:

SELECT relname,
       n_live_tup,
       n_dead_tup,
       round(n_dead_tup::numeric / NULLIF(n_live_tup, 0), 2) AS dead_ratio,
       last_autovacuum
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 20;

تضخم الفهارس

استخدم pgstattuple أو الأدوات المدمجة:

CREATE EXTENSION pgstattuple;

SELECT relname,
       pg_size_pretty(pg_relation_size(indexrelid)) AS size,
       (pgstatindex(indexrelid::regclass)).leaf_fragmentation
FROM pg_stat_user_indexes
ORDER BY pg_relation_size(indexrelid) DESC LIMIT 20;

الفهارس غير المستخدمة

اعثر عليها واحذفها، إذ تستهلك عمليات كتابة:

SELECT schemaname, relname, indexrelname,
       pg_size_pretty(pg_relation_size(indexrelid))
FROM pg_stat_user_indexes
WHERE idx_scan = 0
  AND indexrelname NOT LIKE '%_pkey'
ORDER BY pg_relation_size(indexrelid) DESC;

تدقيق الاتصالات

كم عدد العملاء المتصلين، وما حالة كل منهم:

SELECT datname, usename, application_name, state, COUNT(*)
FROM pg_stat_activity
GROUP BY 1,2,3,4 ORDER BY 5 DESC;

المعاملات الطويلة

سبب تعطل عمليات vacuum:

SELECT pid, state, xact_start, NOW() - xact_start AS xact_age, query
FROM pg_stat_activity
WHERE xact_start IS NOT NULL
ORDER BY xact_age DESC NULLS LAST LIMIT 20;

WAL والأرشيفات

راقب معدل إنشاء WAL لتحديد حجم مساحة التخزين الأرشيفية:

SELECT pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), '0/0')) AS total_wal_generated;

التخطيط للتبديل عند التعطل

يجب أن يطابق قرص النسخة المتماثلة قرص الخادم الأساسي. تحقّق من أن معدل لحاق النسخة المتماثلة بالأساسي ≥ معدل الكتابة على الخادم الأساسي.

خلاصة

يعني تخطيط السعة رسم المقاييس المناسبة بيانيًا.

  • نمو حجم كل جدول
  • نسبة الصفوف الميتة
  • الفهارس غير المستخدمة
  • المعاملات الطويلة التي تمنع vacuum
  • أعداد الاتصالات

اختبار سريع

ما العرض الذي تستعلم عنه للعثور على الجداول التي تحتوي على أكبر عدد من الصفوف الميتة، وذلك لتخطيط عمليات vacuum؟

الأسئلة الشائعة

هل درس «تخطيط السعة وتدقيق التضخم» مجاني؟

نعم — نص درس «تخطيط السعة وتدقيق التضخم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «تخطيط السعة وتدقيق التضخم»؟

توقّع نمو مساحة القرص وIOPS، ودقّق تضخم الجداول والفهارس بانتظام، وخطّط للترقيات قبل نفاد المساحة تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تخطيط السعة وتدقيق التضخم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. pg_stat_statements: أهم الاستعلامات
  2. pgBadger لتحليل السجلات
  3. تجميع الاتصالات: PgBouncer
  4. تخطيط السعة وتدقيق التضخم
← العودة إلى SQL Academy