من فکر می کردم کل ذات مبادله این است که وقتی رم پر بود ، به عنوان یک شبکه ایمنی ذخیره موقت عمل کند اما پارتیشن مبادله من دائماً مورد استفاده قرار می گیرد ، حتی اگر بعضی اوقات به اندازه رم 3 گیگابایتی داشته باشم. آیا این طبیعی است؟
لطفاً محتوا یا خروجی دستورات/پرونده های زیر را به اشتراک بگذارید تا به ما کمک کند تا مشکل خود را عیب یابی کنیم (دستورالعمل های موجود در این پاسخ): رایگا ن-M ، TO P-B 1
من باید عنوان را ویرایش کنم تا اضافه کنم ".
6 پاسخ 6
شما می توانید سعی کنید مقدار "تعویض" خود را تغییر دهید:
تعویض چیست و چگونه می توانم آن را تغییر دهم؟
-
تعویض می تواند ارزش بین 0 تا 100 داشته باشد
-
swappiness = 0 به هسته می گوید تا تا حد امکان از مبادله فرآیند از حافظه فیزیکی خودداری کند. برای نسخه هسته 3. 5 و جدیدتر ، تعویض را غیرفعال می کند.
-
swappiness = 100 به هسته می گوید که فرآیندهای تهاجمی را از حافظه فیزیکی مبادله کرده و آنها را به سمت مبادله حافظه پنهان سوق می دهد
sudo sysct l-load =/etc/sysctl.conf را پس از ویرایش پرونده برای اعمال تغییرات اجرا کنید
گمانه زنی های بیکار: این در واقع می تواند برای عملکرد مفید باشد - صفحاتی که مدتی به آن دسترسی پیدا نکرده اند می توانند در Swap Face کپی شوند ، که به سیستم عامل اجازه می دهد اگر به حافظه احتیاج داشته باشد ، سریعاً آنها را بیرون بکشد ، اما محتوای صفحه در حافظه باقی می ماندبشر
simonrichter بله این ایده است. هرچند که در سیستم های مدرن بیش از حد بسیار پرخاشگر است ، زیرا این بدان معنی است که وقتی هنوز چندین گیگ حافظه رایگان دارید ، شروع به تعویض می کنید.
چند جنبه مختلف برای سوال شما وجود دارد.
اولا ، تعریف شما از "رایگان" چیست. در واقع به آسانی به نظر می رسد که در لینوکس (یا هر سیستم عامل مدرن) به نظر می رسد.
چگونه لینوکس از RAM استفاده می کند (بسیار ساده)
هر برنامه می تواند از برخی از حافظه شما استفاده کند. لینوکس از همه حافظه غیرقابل استفاده (به جز چند مگابایت آخر) به عنوان "حافظه پنهان" استفاده می کند. این شامل حافظه نهان صفحه ، حافظه پنهان inode و غیره است. این یک چیز خوب است - این به سرعت بخشیدن به پشته ها کمک می کند. هم نوشتن به دیسک و هم خواندن از دیسک را می توان با استفاده از حافظه نهان به طور فوق العاده ای برداشت.
در حالت ایده آل ، شما برای همه برنامه های خود حافظه کافی دارید و هنوز هم چند صد مگابایت برای حافظه پنهان باقی مانده است. در این شرایط ، تا زمانی که برنامه های شما از حافظه خود استفاده نمی کنند و سیستم در تلاش نیست فضای کافی برای حافظه نهان را بدست آورد ، نیازی به مبادله ای نیست.
هنگامی که برنامه ها ادعا می کنند RAM بیشتری ، به سادگی به برخی از فضایی که توسط حافظه نهان استفاده می شد ، می رود و حافظه نهان را کوچک می کند. صرفه جویی در حافظه نهان ارزان و به اندازه کافی آسان است که به سادگی در زمان واقعی انجام می شود - هر آنچه در حافظه نهان قرار دارد ، فقط یک نسخه دوم از چیزی است که در حال حاضر روی دیسک است ، بنابراین می توان فوراً مورد استفاده قرار گرفت ، یا این چیزی است که ما می خواهیمبه هر حال مجبور شده است در طی چند ثانیه بعدی به دیسک شستشو داده شود.
این وضعیتی نیست که مخصوص لینوکس باشد - همه سیستم عامل های مدرن به این روش کار می کنند. سیستم عامل های مختلف فقط ممکن است RAM رایگان را متفاوت گزارش دهند: برخی شامل حافظه پنهان به عنوان بخشی از آنچه آنها "رایگان" می دانند و برخی ممکن است نباشد.
وقتی در مورد RAM رایگان صحبت می کنید ، شامل حافظه پنهان بسیار مهمتر است ، زیرا عملاً رایگان است - در صورت درخواست هر برنامه ، در دسترس است. در لینوکس ، فرمان رایگان آن را هر دو روش گزارش می دهد - خط اول شامل حافظه پنهان در ستون RAM استفاده شده است و خط دوم شامل حافظه نهان (و بافر) در ستون رایگان است.
چگونه لینوکس از مبادله استفاده می کند (حتی ساده تر)
هنگامی که از حافظه کافی استفاده کردید که به اندازه کافی برای حافظه نهان صاف باقی نمانده است ، لینوکس ممکن است تصمیم بگیرد که برخی از حافظه برنامه های بلااستفاده را از رم تا مبادله مجدداً اختصاص دهد.
این کار را با توجه به برش قطعی انجام نمی دهد. این طور نیست که شما به درصد مشخصی از تخصیص برسید ، سپس لینوکس شروع به تعویض می کند. این یک الگوریتم نسبتاً "فازی" دارد. موارد زیادی را در نظر می گیرد ، که به بهترین وجه می توان با "چقدر فشار برای تخصیص حافظه وجود دارد" توصیف کرد. اگر "فشار" زیادی برای تخصیص حافظه جدید وجود داشته باشد ، این شانس را افزایش می دهد که برخی از آنها برای ایجاد فضای بیشتر تعویض می شوند. اگر "فشار" کمتری وجود داشته باشد ، این شانس ها را کاهش می دهد.
سیستم شما دارای تنظیم "تعویض" است که به شما کمک می کند تا نحوه محاسبه این "فشار" را تغییر دهید. به طور معمول توصیه نمی شود که این موضوع را تغییر دهید ، و من توصیه نمی کنم آن را تغییر دهید. مبادله به طور کلی یک چیز بسیار خوب است - اگرچه چند مورد لبه وجود دارد که به عملکرد آن آسیب می رساند ، اگر به عملکرد کلی سیستم نگاه کنید ، این یک مزیت خالص برای طیف گسترده ای از کارها است. اگر میزان تعویض را کاهش دهید ، اجازه می دهید مقدار حافظه حافظه پنهان کمی بیشتر از آنچه در غیر این صورت کاهش می یابد ، حتی اگر واقعاً مفید باشد. این که آیا این یک معامله به اندازه کافی خوب برای هر مشکلی است که در مبادله دارید به عهده شماست. شما فقط باید بدانید که چه کاری انجام می دهید ، این همه است.
یک وضعیت شناخته شده وجود دارد که در آن مبادله واقعاً به عملکرد درک شده در یک سیستم دسک تاپ آسیب می رساند ، و این در این است که چگونه برنامه ها می توانند پس از مدت طولانی بیکار ، دوباره به ورودی کاربر پاسخ دهند و فرآیندهای پس زمینه در IO سنگین باشند (مانند یکپشتیبان گیری یک شبه) اجرا کنید. این یک لاغری بسیار مشهود است ، اما برای توجیه خاموش کردن تعویض همه با هم و جلوگیری از جلوگیری از هر سیستم عامل کافی نیست. تعویض را خاموش کنید و این لاغر اولیه بعد از اسکن پشتیبان/ویروس ممکن است اتفاق نیفتد ، اما ممکن است سیستم در تمام طول روز کمی کندتر عمل کند. این وضعیتی نیست که محدود به لینوکس باشد.
هنگام انتخاب آنچه باید به دیسک تعویض شود ، سیستم سعی می کند حافظه را انتخاب کند که در واقع مورد استفاده قرار نمی گیرد - از آن خوانده یا نوشته شده است. این یک الگوریتم بسیار ساده برای محاسبه این مورد است که بیشتر اوقات انتخاب می کند.
اگر سیستمی دارید که قوچ زیادی داشته باشید (در زمان نوشتن ، 8 گیگابایت مقدار زیادی برای یک دیفای معمولی لینوکس است) ، پس به ندرت به شرایطی برخورد خواهید کرد که اصلاً به تعویض نیاز است. حتی ممکن است سعی کنید مبادله را خاموش کنید. من هرگز این کار را توصیه نمی کنم ، اما فقط به این دلیل که هرگز نمی دانید چه زمانی RAM بیشتر ممکن است شما را از برخی از برنامه های کاربردی نجات دهد. اما اگر می دانید که به آن احتیاج ندارید ، می توانید این کار را انجام دهید.
اما چگونه می توان تعویض سیستم من را سرعت بخشید؟آیا تعویض همه چیز آهسته نیست؟
عمل انتقال داده ها از رم به مبادله یک عمل آهسته است ، اما تنها زمانی انجام می شود که هسته کاملاً مطمئن باشد که سود کلی از این امر بالاتر خواهد رفت. به عنوان مثال ، اگر حافظه برنامه شما به حدی افزایش یافته است که تقریباً هیچ حافظه نهان باقی مانده و I/O شما به دلیل این امر بسیار ناکارآمد است ، در واقع می توانید با آزاد کردن برخی از حافظه ها سرعت بیشتری از سیستم خود بدست آورید. پس از هزینه اولیه مبادله داده ها به منظور آزاد کردن آن.
همچنین اگر برنامه های شما در واقع حافظه بیشتری را از آنچه در واقع دارید درخواست می کنند ، آخرین راه حل است. در این حالت ، مبادله برای جلوگیری از وضعیت خارج از حافظه که اغلب منجر به تصادف برنامه یا کشته شدن زور می شود ، ضروری است.
مبادله فقط با مواقعی که سیستم شما ضعیف عمل می کند همراه است زیرا در مواقعی اتفاق می افتد که از رم قابل استفاده استفاده می کنید ، که باعث می شود سیستم شما را کم کند (یا آن را ناپایدار کند) حتی اگر مبادله ای نداشتید. بنابراین برای ساده کردن چیزها ، مبادله اتفاق می افتد زیرا سیستم شما به جای راه دیگر دچار مشکل می شود.
هنگامی که داده ها در مبادله هستند ، چه زمانی دوباره منتشر می شود؟
انتقال داده ها از مبادله (حداقل برای دیسک های سخت سنتی) به همان اندازه وقت گیر است که آن را در آنجا قرار می دهد. بنابراین قابل درک است که هسته شما به همان اندازه تمایلی به حذف داده ها از مبادله نخواهد داشت ، به خصوص اگر در واقع مورد استفاده قرار نگیرد (یعنی خوانده شده از یا نوشته شده). اگر داده هایی را در SWAP دارید و از آن استفاده نمی شود ، در واقع این یک چیز خوب است که در SWAP باقی می ماند ، زیرا حافظه بیشتری را برای موارد دیگری که مورد استفاده قرار می گیرند باقی می گذارد ، و به طور بالقوه سیستم شما را سرعت می بخشد.
استراتژی برای تحلیل فاندمنتال...
ما را در سایت استراتژی برای تحلیل فاندمنتال دنبال می کنید
برچسب :
نویسنده : سعید شیخزاده
بازدید : <-PostHit->
تاريخ : دوشنبه
8 خرداد
1402 ساعت: 17:16