سؤال

لينكس مستجد السؤال:

إذا كان لدي 500 ميجابايت من ذاكرة الوصول العشوائي ، 500 ميغا بايت من مساحة المبادلة ، أن نظام التشغيل والعمليات ثم استخدام 1GB من الذاكرة ؟

وبعبارة أخرى ، هو إجمالي مقدار الذاكرة المتاحة على برامج التشغيل إجمالي حجم الذاكرة الفعلية و مبادلة الحجم ؟

أحاول معرفة أي SNMP العدادات للاستعلام ولكن تحتاج إلى فهم كيف لينكس يستخدم الذاكرة الظاهرية أفضل قليلا أولا.

شكرا

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

المحلول

نعم، هذا هو الصحيح أساسا. قد تكون الأرقام الفعلية (جدا) بانخفاض طفيف، ولكن لجميع المقاصد والأغراض، إذا كنت قد x الذاكرة الفعلية والذاكرة الظاهرية y (المبادلة في لينكس)، ثم قمت x + y الذاكرة المتاحة لنظام التشغيل وأية برامج تشغيل تحت OS.

نصائح أخرى

في الواقع, هذا هو الأساس الصحيح ، ولكن "الظاهري" ذاكرة لا يقيمون بجانب الخاص بك "الذاكرة الفعلية" (متى Scharley ذكر).

الخاص بك "الذاكرة الظاهرية" هو تجريد طبقة تغطي كلا من "المادية" (كما في RAM) و "مبادلة" (كما في القرص الثابت ، وهو بالطبع بدنية بقدر RAM) الذاكرة.

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

لا شيء من أي وقت مضى بهذه البساطة بعد الآن...

صفحات الذاكرة هي بتكاسل المخصصة.وهي عملية يمكن أن malloc() كمية كبيرة من الذاكرة أبدا استخدامه.لذا على 500MB_RAM + 500MB_SWAP نظام يمكنني الناحية النظرية على الأقل-تخصيص 2 أزعج من ذاكرة من كومة الأشياء سيتم تشغيل بمرح على طول حتى وأنا أحاول أن استخدام الكثير من الذاكرة.(في هذه النقطة ما لم أستطع الحصول على المزيد من صفحات الذاكرة يحصل ضربوا.نأمل انها عملية.ولكن ليس دائما.)

العمليات الفردية قد تكون محدودة إلى 4 أزعج من الصعب معالجة قيود على أنظمة 32 بت.حتى عندما يكون لديك أكثر من 4 جيجا من الرام على الجهاز وكنت باستخدام هذا غريب مجزأة 36 بت الوحشية من الجحيم معالجة مخطط العمليات الفردية لا تزال محدودة إلى 4 فقط العربات.بعض 4 العربات لديه للذهاب للمكتبات المشتركة و رمز البرنامج.لذلك ريال وصولا إلى 2-3 العربات من كومة+كومة باعتبارها معالجة القيد.

يمكنك mmap الملفات بشكل فعال مما يتيح لك المزيد من الذاكرة.انها في الأساس بمثابة إضافية مبادلة.أولا-هاء.بدلا من تحميل البرنامج رمز ثنائي البيانات في الذاكرة ومن ثم مبادلة بها إلى swapfile الملف هو مجرد mmapped.حسب الحاجة, الصفحات تبادلت إلى RAM مباشرة من الملف.

يمكنك الحصول على بعض الاشياء المثيرة للاهتمام مع متفرق البيانات mmapped الملفات المتفرقة.رأيت X-windows المطالبة هائلة استخدام الذاكرة في حين أنه كان فقط باستخدام ما يصل قليلا صغيرة.

راجع للشغل:"مجانا"قد تساعدك.كما قد "cat /proc/meminfo"أو Vm خطوط في /proc/$PID/مركز.(خاصة VmData و VmStk.) أو ربما "ps تصل $PID"

وعلى الرغم من أن معظمها كان هذا صحيحا، فإنه ليس <م> تماما الصحيح. لعملية معينة، والبيئة تشغيله في قد تحد من الذاكرة المتاحة لعملية الخاص بك. تحقق من إخراج ulimit -v كذلك.

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