سؤال

أفهم أن الإجابة على هذا السؤال قد تعتمد على إعدادات التسجيل وعلى إصدار Windows، وربما على مقدار ذاكرة الوصول العشوائي إذا لم يكن هناك ذاكرة كافية. من أجل هذا السؤال، افترض أن الخادم يحتوي على الكثير من ذاكرة الوصول العشوائي (3+ GIB).

إذا تربس تطبيق (تطبيق الطرف الثالث في هذه الحالة) مقابض على بضع مئات من ساعة واحدة، وكم عدد المقابض الإجمالية التي يمكن أن تسرب التطبيق قبل أن تعمل التطبيقات الأخرى على مشاكل؟ عن طريق "المشاكل" أقصد، على سبيل المثال، فشل في بدء إنشاء مؤشر ترابط، تفشل في فتح ملف، وهلم جرا.

لقد رأيت بعض الخوادم (محملة طفيفة) تشغيل على ما يرام مع عملية (عادة عملية قاعدة بيانات) باستخدام عدد قليل من عشرات الآلاف من المقابض، وبالتالي فإن الحد المسموح به 10000 القديم ليس هو المسألة هنا. (وكان ذلك حد لكل عملية على أي حال، لذلك لن يؤثر على طلبي وهو جيد تحت هذه النقطة.)

هل يمكن لشخص ما الرد على السؤال أو أنشأني في بعض الموارد التي تشرح عن عدد المقابض الكلية التي سيسمح بها Windows Server قبل نفادها بشكل فعال (من مقابض أو موارد النظام الأخرى)؟

هل كانت مفيدة؟

المحلول

يرى ريموند تشن وظيفة حول هذا الموضوع. وبعد يفرض مدير النافذة حد 10K لكل عملية، ولديه حد كبير 32K عبر النظام. لذلك إذا كان "فقط" تسرب 100 مقابض في الساعة، فإن لديك بضعة أيام من الجهوزية قبل أن تبدأ سوء التصرف.

لاحظ أنه ليس كل المقابض متساوية. مقابض النافذة ليست مقابض DB، على سبيل المثال، وقد تتبع قواعد مختلفة. لذلك قد لا ينطبق هذا التقييد، اعتمادا على نوع المقابض التي يتسرب البرنامج. اقرأ أيضا هذه المدونة وظيفة.

نصائح أخرى

ال كومة سطح المكتب, ، وهو مجموعة من الذاكرة حيث يمثل المقبض "الأشياء الحقيقية" حياة. في بعض الأحيان ليس كثيرا عدد المقابض التي قمت بتخصيصها ولكن مقدار الذاكرة هدف تحت هذا المقبض يستخدم. يمكنك تصحيح الكومة من هنا. وبعد إنها الم لتثبيت.

(تم إعادة تدوير هذا من أحد إجاباتي)

نظرا لأن هذه القيم قد تتغير مع إصدارات Windows الجديدة، يمكنك استخدام أداة SYSINTERNALS TestLimit / TestLimit64 للحصول على تقدير تقريبي. قد يعمل إصدار X64 لفترة من الوقت، خاصة بالنسبة للاختبار الذاكرة (قد يستخدم القرص الثابت (ملف المبادلة) للحصول على المزيد من الذاكرة الظاهرية).

الحصول على الأدوات من http://live.sysinternals.com/windowsInternals/ أو http://download.sysinternals.com/files/testlimit.zip.

خيارات سطر الأوامر:

-p check process limit
-t check thread limit
-h check handle limit
-u check user handle limit

وفق هذه, 10000.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top