currentOp (العمليات النشطة)
آخر تحديث: 2026-10-09
currentOp (العمليات النشطة)
يسرد currentOp العمليات الجارية حاليًا، لتشخيص الاستعلامات البطيئة والأعمال طويلة التشغيل (كتابات محجوبة ومعاملات مفتوحة). يعرض كل إدخال opid و client و ns و secs_running و command؛ واقرنه بـ db.killOp(opid) للإنهاء. استدعِ db.currentOp({ active: true }) مباشرةً في mongosh.
| الفئة | المراقبة والتشخيص |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.currentOp()
db.currentOp({ active: true, secs_running: { $gt: 5 } })
db.killOp(<opid>)
⚙️ المعلمات
| active | يُرجع فقط العمليات التي تكون فيها active مساوية true. |
|---|---|
| secs_running | يرشّح حسب ثواني التشغيل (مثل $gt: 5). |
القيمة المرجعة:يُرجع مصفوفة inprog مع مستند تفصيلي واحد لكل عملية
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// currentOp: العثور على العمليات التي تعمل منذ أكثر من 5 ثوانٍ
db.currentOp({ active: true, secs_running: { $gt: 5 } })
// أوقفها باستخدام معرّف العملية opid
// db.killOp(12345)
المخرجات:
{ inprog: [ { opid: 12345, secs_running: 12, ns: 'shop.orders' } ], ok: 1 }
📌 ملاحظات
- خط أنابيب التجميع $currentOp يصفّي بدقة (مساحة الاسم والأمر وغيرها)
- killOp يجهض العملية، لكن تراجع المعاملة قد يستغرق وقتًا
- يتطلب صلاحيات inprog مثل clusterMonitor
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكيف أجد الاستعلامات البطيئة؟
Aشغّل db.currentOp({ active: true, secs_running: { $gt: 5 } }) ورتّب بـ secs_running.
Qكيف أقتل عملية عالقة؟
Aخذ opid من currentOp وشغّل db.killOp(opid).
Qهل يتطلب currentOp صلاحيات؟
Aنعم — صلاحيات inprog/killop؛ المستخدمون العاديون يرون عملياتهم فقط.