آیا Vmmem سخت افزار شما را در ویندوز می بلعد؟ در اینجا نحوه تحت کنترل درآوردن آن آمده است.
آیا با فرآیندی به نام Vmmem در Task Manager ویندوز مواجه شده اید؟ آیا CPU، RAM و سایر منابع سیستم که شما را نگران می کند بیش از حد مصرف می کند؟ این فرآیندی است که توسط ویندوز برای نشان دادن تعداد منابعی که ماشینهای مجازی مصرف میکنند استفاده میکند.
بنابراین، اگر مصرف CPU یا RAM بیش از حد را نشان دهد، این ماشین مجازی شما مقصر است. در این مقاله، این فرآیند را با جزئیات بیشتری بررسی خواهیم کرد و به شما نشان خواهیم داد که چگونه می توانید مصرف منابع آن را کاهش دهید.
فرآیند Vmmem چه کاری انجام می دهد؟
طبق یک پست Microsoft DevBlogs، ویندوز فرآیند Vmmem را برای نمایش منابع مصرف شده توسط ماشین های مجازی ایجاد می کند. وقتی می بینید که این فرآیند منابع زیادی را در Task Manager مصرف می کند، ماشین های مجازی شما در واقع از این منابع استفاده می کنند که این فرآیند فقط نشان می دهد.
به طور معمول، هنگامی که شما به طور فعال یک ماشین مجازی را در Hyper-V Manager اجرا میکنید یا از WSL (زیر سیستم ویندوز برای لینوکس) برای اجرای فایلهای اجرایی باینری لینوکس استفاده میکنید، این فرآیند را مشاهده میکنیم. به طور کلی، نباید منابع شما را بیش از حد بارگذاری کند، اما زمانی که این کار را می کند، چیزی اشتباه است.
آیا در Task Manager برای این فرآیند نیز مصرف منابع بالایی را مشاهده می کنید؟ بیایید ببینیم برای رفع آن چه کاری می توانیم انجام دهیم.
ابتدا ببینید چه چیزی باعث این مشکل شده است
ابتدا مشخص کنید که کدام ماشین مجازی یا برنامه در پس مصرف بالای منابع فرآیند Vmmem قرار دارد. اگر فقط یک مدیر ماشین مجازی را اجرا می کنید، پس مشکل را قبلاً پیدا کرده اید. با این حال، اگر مدیر ماشین مجازی و WSL را به طور همزمان اجرا می کنید، باید تعیین کنید که کدام برنامه باعث این مشکل شده است.
چگونه می توانید تعیین کنید چه چیزی منابع شما را تحت فشار قرار می دهد؟ برای پیدا کردن، آزمایش و بهترین رویکرد است. ماشینهای مجازی را در Hyper-V Manager خود ببندید و ببینید آیا این به کاهش مصرف منابع کمک میکند یا خیر. به طور مشابه، می توانید ابزارهای WSL را خاموش کنید و ببینید چه تاثیری دارند.
هنگامی که یک ماشین مجازی را در Hyper-V Manager می بندیم، فرآیند Vmmem به سرعت از Task Manager ناپدید می شود، به این معنی که دیگر هیچ منبعی توسط این فرآیند مصرف نمی شود. در مقابل، وقتی ابزارهای لینوکس یا WSL را می بندیم، فرآیند Vmmem مدتی طول می کشد تا محو شود، بنابراین قبل از ارزیابی تأثیر بسته شدن آن، کمی صبر کنید.
هنگامی که مقصر اصلی را شناسایی کردید، به دستورالعمل های زیر مراجعه کنید که نحوه کاهش مصرف منابع ماشین مجازی در Hyper-V Manager و WSL را توضیح می دهد.
نحوه کاهش مصرف منابع توسط ماشین های مجازی در Hyper-V Manager
اگر فرآیند Vmmem مصرف منابع بالایی را در Task Manager هنگام اجرای ماشینهای مجازی در Hyper-V Manager نشان میدهد، ابتدا بررسیهای اولیه زیر را اعمال کنید:
- ماشین های مجازی خود را در Hyper-V Manager روشن و خاموش کنید.
- Hyper-V Manager را پس از بستن مجدد راه اندازی کنید.
- فقط اگر بیش از یک ماشین مجازی دارید در Hyper-V Manager اجرا کنید.
- اگر همزمان با Hyper-V Manager از کلاینت ماشین مجازی دیگری استفاده می کنید، آن را ببندید.
اگر بررسیهای بالا مصرف منابع را کاهش نمیدهند، که میتوانید با بررسی تعداد منابعی که فرآیند Vmmem در Task Manager مصرف میکند، بررسی کنید، تخصیص منابع ماشین مجازی را در Hyper-V Manager محدود کنید. در اینجا به این صورت است:
- Hyper-V Manager را راه اندازی کنید.
- بر روی ماشین مجازی خود کلیک راست کرده و روی تنظیمات کلیک کنید.
- در نوار کناری سمت چپ، روی Memory کلیک کنید.
- حداکثر مقدار RAM که ماشین مجازی می تواند استفاده کند را تنظیم کنید.
- تیک گزینه Enable Dynamic Memory را بردارید یا RAM پویا را که ماشین مجازی می تواند در آنجا استفاده کند محدود کنید.
به طور مشابه، می توانید پارامترهای دیگر را تغییر دهید تا ماشین مجازی را محدود کنید تا فقط از منابع مشخص شده استفاده کند و کامپیوتر شما را تحت فشار قرار ندهد. اگر تغییر دادن این تنظیمات به کاهش مصرف منابع کمک نمی کند، می توانید Hyper-V Manager را رها کنید و از مدیر ماشین مجازی دیگری مانند VirtualBox یا VMware استفاده کنید.
اکثر مدیران مجازی شخص ثالث مصرف حافظه را در Task Manager با استفاده از فرآیندهایی غیر از فرآیند Vmmem نمایش می دهند. برای مثال VMWare از فرآیندی به نام VMware-vmx.exe استفاده می کند. بنابراین، مراقب آنها باشید و اگر منابع زیادی مصرف می کنند، یا تخصیص حافظه آنها را محدود کنید یا اصلاحات ذکر شده برای Hyper-V Manager را اعمال کنید.
نحوه کاهش مصرف منابع توسط ابزارهای WSL و Linux
بسته به ساخت ویندوز شما (و بررسی بیلد شما در ویندوز 11 واقعا آسان است)، WSL ممکن است حق استفاده از 50٪ تا 80٪ RAM شما را داشته باشد، همانطور که در مستندات مایکروسافت توضیح داده شده است. از این رو، می توانید تصور کنید که چقدر می تواند تشنه منابع شود، که دقیقاً همان چیزی است که فرآیند Vmmem سعی می کند نشان دهد.
اگر اجرای زیرسیستم ویندوز برای لینوکس یا ابزارهای خاص لینوکس منجر به مصرف منابع بالا شود، همانطور که در فرآیند Vmmem نشان داده شده است، می توانید با دنبال کردن مراحل زیر، حافظه را بازیابی کنید و مشکل را برطرف کنید:
1. WSL را به صورت دستی راه اندازی مجدد کنید
یکی از ساده ترین راه ها برای حل و فصل مصرف بالای منابع توسط ابزارهای WSL یا Linux، راه اندازی مجدد آنها به سادگی است. بنابراین، شما باید هر ابزار لینوکس را که در حال حاضر باز کرده اید، از جمله خود WSL، به صورت دستی ببندید.
یک دقیقه صبر کنید و ببینید آیا فرآیند Vmmem پس از آن مصرف منابع سنگین را به شما نشان نمی دهد یا خیر. اگر چنین شد، توزیعهای WSL را دوباره راهاندازی کنید و ببینید آیا فرآیند Vmmem به همین صورت عمل میکند یا خیر. اگر چنین است، راه حل دوم را نادیده بگیرید و مورد سوم را اعمال کنید.
با این حال، اگر WSL را به صورت دستی ببندید و فرآیند Vmmem را در Task Manager متوقف نکند، باید به زور آن را خاموش کنید. در اصلاح بعدی، نحوه عملکرد آن را توضیح خواهیم داد.
2. WSL را به زور ببندید و دوباره راه اندازی کنید
برای بستن اجباری WSL، مراحل زیر را دنبال کنید:
- Command Prompt را به عنوان مدیر اجرا کنید.
- “wsl — shutdown” را تایپ کنید.
- Enter را بزنید.
سپس توزیع های WSL را مجدداً راه اندازی کنید. اگر راه اندازی مجدد WSL مشکل را برطرف نکرد، به راه حل بعدی بروید.
3. محدود کردن منابع به صورت دستی برای WSL
WSL همچنین می تواند از نظر منابعی که استفاده می کند محدود شود تا سیستم شما را با نیازهای بیش از حد منابع تحت فشار قرار ندهد. شما فقط می توانید این کار را با WSL 2 انجام دهید، که فقط روی ویندوزهای بالاتر از 19041 کار می کند. اگر قبلاً این کار را نکرده اید، مقاله ما را در مورد نحوه نصب WSL 2 در ویندوز بررسی کنید.
اگر Windows Build شما از WSL 2 پشتیبانی می کند و قبلاً آن را نصب کرده اید، می توانید منابع آن را با دنبال کردن مراحل زیر محدود کنید:
- Command Prompt ویندوز را به عنوان مدیر اجرا کنید.
- “wsl – shutdown” را تایپ کرده و Enter را فشار دهید.
- Command Prompt ویندوز را ببندید.
- WSL را باز کنید.
- پس از جایگزینی نام کاربری خود، دستور زیر را وارد کنید: editor “$(wslpath “C:\Users\YourUsername\.wslconfig”)”
- Enter را بزنید.
- پیکربندی زیر را وارد کنید: [wsl2] memory=5GB (آن را بر اساس اندازه RAM خود محدود کنید)
- CTRL + X را بزنید.
- هنگامی که از شما خواسته شد تا تغییرات را ذخیره کنید، “Y” را فشار دهید.
- مکان را با فشردن مجدد Enter تأیید کنید.
- مراحل یک تا سه را تکرار کنید.
- پس از راه اندازی مجدد WSL دستور زیر را اجرا کنید تا تأیید کنید منابع با موفقیت تخصیص داده شده اند. رایگان -h –giga
با مراحل بالا، می توانید استفاده از منابع WSL را محدود کنید تا کامپیوتر شما را بیش از حد تحت فشار قرار ندهد.
آیا امکان پایان دادن به فرآیند Vmmem وجود دارد؟
Task Manager به شما اجازه نمی دهد که فرآیند Vmmem را مانند کارهای معمولی ببندید. اگر سعی کنید این کار را انجام دهید، با خطا مواجه خواهید شد. برای پایان دادن به فرآیند Vmmem، باید ماشین های مجازی و WSL یا هر یک از ابزارهای لینوکس آن را ببندید.
اجازه ندهید ماشین های مجازی منابع شما را مصرف کنند
نکات ذکر شده در مقاله باید به شما کمک کند مصرف منابع ماشین مجازی را محدود کنید. پس از انجام این کار، فرآیند Vmmem به عنوان مصرف کننده منابع بالا در Task Manager ظاهر نمی شود.
انتخاب یک مدیر ماشین مجازی عالی برای اجرای کارآمد ماشین های مجازی ضروری است. یک مدیر ماشین مجازی قابل اعتماد عملکرد مطلوبی را به شما ارائه می دهد، که یک مدیر معمولی این کار را نمی کند.