در اکوسیستم بیرحم و پرشتاب گیمینگ مدرن، جایی که مرز بین پیروزی و شکست اغلب با واحد "میلیثانیه" اندازهگیری میشود، سیستم عامل شما نباید به عنوان یک عامل بازدارنده عمل کند. تصور کنید در حال اجرای یک بازی رقابتی سطح بالا مانند Call of Duty: Warzone یا Valorant هستید؛ سختافزار شما قدرتمند است، کارت گرافیک آخرین نسل را در اختیار دارید و پردازنده شما آماده پردازش میلیاردها دستورالعمل در ثانیه است. اما درست در لحظهای که نیاز به واکنش آنی دارید، یک لگ میکروسکوپی (Micro-stutter)، یک افت فریم ناگهانی یا یک تاخیر در بارگذاری بافتها (Texture Pop-in)، تجربه شما را تخریب میکند. این پدیده، که اغلب گیمرها آن را به اشتباه به ضعف سختافزاری یا بهینهسازی بد بازی نسبت میدهند، در بسیاری از موارد ریشه در اعماق معماری سیستم عامل ویندوز دارد؛ جایی که سرویسهای پسزمینه با اهدافی متفاوت از اهداف یک گیمر، در حال بلعیدن منابع حیاتی سیستم هستند.
در کانون این تضاد منافع، سرویسی به نام SysMain (که کهنهکاران ویندوز آن را با نام Superfetch میشناسند) قرار دارد. این سرویس که با نیتی خیرخواهانه و فلسفهای مبتنی بر "پیشبینی رفتار کاربر" طراحی شده است، در سناریوهای گیمینگ میتواند به یک گلوگاه مخفی و خاموش تبدیل شود. این گزارش، یک مقاله سطحی برای غیرفعال کردن یک سرویس نیست؛ بلکه یک کالبدشکافی عمیق، فنی و بیرحمانه از معماری مدیریت حافظه ویندوز، دینامیکهای I/O دیسک، و تأثیرات متقابل سرویسهای سیستمی بر خط لوله رندرینگ بازیهاست. ما در این سفر، نه تنها به چرایی و چگونگی غیرفعال کردن SysMain میپردازیم، بلکه ابزار تخصصی و چارچوب بهینهسازی "WinPerf" را معرفی میکنیم؛ راهکاری که قوانین بازی را به نفع کاربر بازنویسی میکند.
آمادهاید تا کنترل کامل ماشین جنگی خود را از دست الگوریتمهای پیشبینیکننده مایکروسافت خارج کنید؟ بیایید به لایههای زیرین کرنل ویندوز نفوذ کنیم.
برای درک اینکه چرا SysMain گاهی اوقات به دشمن پرفورمنس تبدیل میشود، باید ابتدا مکانیزمهای داخلی مدیریت حافظه در ویندوز (Windows Memory Manager) را با دقت جراحی کنیم. ویندوز به طور سنتی بر این فرض استوار بوده که حافظه رم (RAM) منبعی سریع اما محدود است، در حالی که دیسک سخت (HDD) منبعی کند اما حجیم است. هدف نهایی مدیر حافظه، به حداقل رساندن تعداد دفعاتی است که سیستم مجبور میشود برای دریافت داده، به دیسک کند مراجعه کند.
سرویس SysMain در واقع تکاملیافتهی تکنولوژیهایی است که ریشه در ویندوز XP دارند. در آن زمان، ویژگی Prefetcher معرفی شد که وظیفهاش نظارت بر فایلهایی بود که در هنگام بوت شدن سیستم یا شروع یک برنامه بارگذاری میشدند. ویندوز ویستا این مفهوم را با معرفی Superfetch گسترش داد و ویندوز ۱۰ آن را به SysMain تغییر نام داد. هسته مرکزی این سرویس، یک موتور تحلیل رفتاری است که به طور مداوم الگوهای استفاده شما را زیر نظر دارد. اگر شما هر روز صبح ابتدا مرورگر و سپس ایمیل خود را چک میکنید، SysMain این الگو را یاد میگیرد و تلاش میکند قبل از اینکه شما حتی ماوس را حرکت دهید، دادههای مورد نیاز این برنامهها را از دیسک خوانده و در حافظه رم بارگذاری کند.
این فرآیند Speculative Memory Management نامیده میشود. در تئوری، این یک شاهکار مهندسی است: استفاده از رم بلااستفاده (Unused RAM) به عنوان یک حافظه نهان (Cache) هوشمند. اما مشکل زمانی آغاز میشود که پیشبینیهای SysMain با واقعیتِ پرنوسانِ یک جلسه گیمینگ تداخل پیدا میکند.
در سطح فنی، SysMain با مانیتور کردن Hard Page Faults کار میکند. وقتی برنامهای به آدرسی از حافظه نیاز دارد که در رم موجود نیست، یک Hard Fault رخ میدهد و سیستم عامل باید آن صفحه (Page) را از دیسک بخواند که عملیاتی بسیار کند است (چندین میلیثانیه). SysMain تلاش میکند با پر کردن پیشدستانهی رم، این Hard Faultها را به Soft Page Faults تبدیل کند (حالتی که داده در رم موجود است اما هنوز به فضای آدرس برنامه اختصاص نیافته است).
دادههایی که SysMain پیشبارگذاری میکند، در لیستهای Standby حافظه قرار میگیرند. این لیستها اولویتبندی شدهاند (از ۰ تا ۷). اگر سیستم به رم نیاز داشته باشد، ویندوز به سرعت این دادههای Standby را دور میریزد. اما فرآیندِ پر کردن این لیست است که هزینهبر است. SysMain برای خواندن این دادهها از دیسک، باید درخواستهای I/O (ورودی/خروجی) تولید کند و برای تحلیل الگوها و فشردهسازی صفحات حافظه، سیکلهای پردازنده (CPU Cycles) را مصرف میکند.
درست در لحظهای که موتور بازی شما (مثلاً Unreal Engine 5) تلاش میکند تکسچرهای با کیفیت 4K را برای رندر کردن صحنه بعدی استریم کند، SysMain ممکن است تصمیم بگیرد که زمان خوبی برای بارگذاری پیشدستانهی MS Office است. این تداخل در صف I/O، همان چیزی است که باعث ایجاد تاخیر میشود.
یکی از شایعترین، آزاردهندهترین و مخربترین مشکلاتی که کاربران ویندوز ۱۰ و ۱۱ گزارش میدهند، پدیده استفاده ۱۰۰٪ از دیسک است، حتی زمانی که سیستم در حال انجام کار سنگینی نیست. تسک منیجر باز است، هیچ برنامهای اجرا نمیشود، اما نمودار دیسک روی ۱۰۰٪ قفل شده و سیستم به شدت کند (Sluggish) است. تحقیقات نشان میدهد که در بسیاری از موارد، سرویس Service Host: SysMain مظنون اصلی این جنایت دیجیتال است.
این مشکل در سیستمهایی که هنوز از هارد دیسکهای مکانیکی (HDD) به عنوان درایو اصلی سیستم عامل استفاده میکنند، به یک فاجعه تمامعیار تبدیل میشود. هارد دیسکها دارای بازوهای مکانیکی و هدهای خواندن/نوشتن هستند. برای دسترسی به هر فایل، هد باید فیزیکاً به محل دقیق سکتور روی دیسک حرکت کند. این زمان حرکت (Seek Time) و زمان چرخش دیسک (Rotational Latency)، گلوگاه اصلی است.
SysMain ذاتاً برای بهبود عملکرد HDDها طراحی شده بود (با مرتبسازی دادهها به صورت پیوسته)، اما الگوریتمهای مدرن آن که برای حجم عظیمی از دادهها طراحی شدهاند، میتوانند نتیجه معکوس دهند. SysMain با درخواستهای مداوم برای خواندن فایلهای کوچک و بزرگ از سراسر دیسک جهت پر کردن رم، هد هارد دیسک را وارد یک حالت "Thrashing" میکند. هد دیوانهوار به جلو و عقب حرکت میکند تا پیشبینیهای SysMain را ارضا کند. در این وضعیت، اگر کاربر (یا بازی) یک درخواست واقعی ارسال کند، باید در انتهای یک صف طولانی منتظر بماند. این یعنی تاخیرهای چند ثانیهای در پاسخگویی سیستم.
با ظهور SSDها و به خصوص درایوهای NVMe با سرعتهای چند گیگابایت در ثانیه، بسیاری تصور کردند که دوران بهینهسازی دیسک به پایان رسیده است. درست است که SSDها به دلیل نداشتن قطعات متحرک و IOPS (تعداد عملیات ورودی/خروجی در ثانیه) بسیار بالا، کمتر دچار قفل شدن ۱۰۰٪ میشوند، اما SysMain همچنان میتواند بر عملکرد آنها تأثیر منفی بگذارد، هرچند به شکلی ظریفتر.
اشغال پهنای باند و صف فرمان (Command Queue): حتی سریعترین SSDها نیز محدودیتهایی در صف فرمان خود دارند. فعالیتهای سنگین SysMain در پسزمینه، بخشی از این ظرفیت را اشغال میکند.
مصرف CPU و سربار سیستم: SysMain فقط دیسک را درگیر نمیکند. فرآیند تحلیل الگوها، مدیریت لیستهای حافظه و فشردهسازی دادهها (Memory Compression) نیاز به پردازش دارد. در بازیهای CPU-Bound (بازیهایی که گلوگاه پردازنده دارند، مثل CS:GO، Valorant یا بازیهای استراتژی سنگین)، هر درصدی از CPU که صرف کارهای پسزمینه شود، مستقیماً از نرخ فریم بازی کم میکند.
طول عمر SSD (Write Endurance): اگرچه هدف اصلی SysMain خواندن است، اما بهروزرسانی مداوم فایلهای پایگاه دادهی خود در پوشه C:\Windows\Prefetch و SysMain.db شامل عملیات نوشتن است که هرچند اندک، اما در درازمدت غیرضروری است.
گیمرهای حرفهای میدانند که "میانگین FPS" (Average FPS) تنها نیمی از داستان است. آنچه یک تجربه بازی را "روان" (Smooth) یا "لگدار" (Choppy) میکند، شاخصهایی مانند 1% Lows و Frame Time Consistency هستند.
موتورهای بازی مدرن مانند Unreal Engine 5 یا Red Engine (سایبرپانک ۲۰۷۷) از تکنیکهای پیشرفته Asset Streaming استفاده میکنند. آنها تمام جهان بازی را یکجا در رم بارگذاری نمیکنند. در عوض، در حین حرکت بازیکن در محیط، بافتها، مدلهای سهبعدی و صداها را به صورت پویا (Dynamically) از دیسک خوانده، در رم دیکد کرده و به VRAM کارت گرافیک منتقل میکنند.
اگر در لحظهای که بازی نیاز دارد یک بافت حجیم را برای منطقه جدید بارگذاری کند، سرویس SysMain نیز تصمیم بگیرد دیتای مربوط به "Photos App" را در رم بازچینش کند، یک تداخل I/O رخ میدهد. این تداخل باعث میشود که موتور بازی برای کسری از ثانیه منتظر داده بماند. نتیجه؟ یک توقف ناگهانی در تصویر (Stutter) که میتواند هدفگیری شما را در یک بازی شوتر خراب کند.8
بر اساس گزارشهای متعدد از انجمنهای تخصصی سختافزار و ردیت (Reddit)، تأثیر غیرفعال کردن SysMain به شدت به مشخصات سیستم وابسته است:

SysMain در این توطئه علیه پرفورمنس تنها نیست. یک مثلث برمودای منابع وجود دارد که شامل SysMain، Windows Search و Telemetry میشود.
سرویس جستجوی ویندوز (WSearch) وظیفه ایندکس کردن نام فایلها و محتویات آنها را بر عهده دارد تا جستجو در منوی استارت سریع انجام شود. این سرویس پایگاه دادهای به نام Windows.edb میسازد و مدام در حال اسکن تغییرات فایلهاست. در سناریوهای گیمینگ، بهویژه پس از نصب پچهای حجیم بازی (که هزاران فایل را تغییر میدهند)، ایندکسر فعال میشود و دیسک را درگیر عملیات خواندن/نوشتن سنگین میکند.13
تستها نشان دادهاند که غیرفعال کردن همزمان SysMain و Windows Search میتواند تأثیر همافزایی (Synergistic Effect) داشته باشد و بار دیسک را به حالت Idle مطلق (۰-۱٪) برساند، که ایدهآلترین حالت برای شروع بازی است.15
سرویسهای تلمتری (مانند Connected User Experiences and Telemetry) به طور مداوم دادههای تشخیصی را جمعآوری و فشرده کرده و به سرورهای مایکروسافت ارسال میکنند. این سرویسها نه تنها دیسک و CPU، بلکه پهنای باند شبکه را نیز مصرف میکنند که میتواند منجر به افزایش پینگ (Ping) در بازیهای آنلاین شود.12

در پاسخ به نیاز مبرم گیمرها برای مدیریت هوشمند، خودکار و ایمنِ این سرویسها، مفهوم ابزاری به نام "WinPerf" (Windows Performance Orchestrator) شکل گرفته است. WinPerf یک ابزار اسکریپتمحور پیشرفته است که بر خلاف "Game Booster"های تجاری که اغلب بدافزار یا بیاثر هستند، بر پایه اصول مهندسی سیستم عامل و مستندات فنی مایکروسافت بنا شده است.
WinPerf به عنوان یک "ارکستراتور سرویس" (Service Orchestrator) عمل میکند. این ابزار نه تنها سرویسها را قطع و وصل میکند، بلکه وضعیت سیستم را تحلیل کرده و تصمیمات منطقی میگیرد. معماری آن شامل سه لایه است:
لایه تشخیص (Diagnostic Layer):
بررسی نوع دیسک (SSD vs HDD) با استفاده از کوئریهای WMI.
بررسی ظرفیت رم و وضعیت استفاده از Page File.
شناسایی فرآیندهای سنگین پسزمینه.
لایه اجرا (Execution Layer):
مدیریت سرویسهای SysMain، WSearch، و DiagTrack.
اعمال تغییرات در Power Plan (تغییر به Ultimate Performance).
تنظیم اولویتهای پردازشی (Process Affinity & Priority).
لایه ایمنی (Safety Layer):
ایجاد Restore Point قبل از هر تغییر.
قابلیت بازگشت سریع (Rollback) به تنظیمات پیشفرض ویندوز.
هسته مرکزی WinPerf بر پایه PowerShell قدرتمند استوار است. در زیر، ساختار منطقی و نمونه کدهای واقعی که این ابزار برای مدیریت SysMain استفاده میکند را بررسی میکنیم. این کدها بر اساس بهترین روشهای استخراج شده از منابع فنی تدوین شدهاند.
PowerShell
<# .SYNOPSIS WinPerf Core Logic - SysMain Optimization Module .DESCRIPTION این ماژول وضعیت دیسک را بررسی کرده و در صورت نیاز SysMain را غیرفعال میکند. #> function Optimize-SysMain { Write-Host " Analyzing System Storage Architecture..." -ForegroundColor Cyan # تشخیص نوع درایو (SSD یا HDD) $physicalDisk = Get-PhysicalDisk | Where-Object { $_.DeviceID -eq 0 } # فرض بر درایو سیستم $mediaType = $physicalDisk.MediaType Write-Host " Main Drive Type Detected: $mediaType" -ForegroundColor Yellow $sysMainService = Get-Service -Name "SysMain" -ErrorAction SilentlyContinue if ($sysMainService) { if ($mediaType -eq "HDD") { Write-Host " HDD Detected. Applying AGGRESSIVE optimization." -ForegroundColor Red # برای HDD، غیرفعال کردن اجباری است Stop-Service -Name "SysMain" -Force Set-Service -Name "SysMain" -StartupType Disabled # تغییر رجیستری برای اطمینان Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SysMain" -Name "Start" -Value 4 Write-Host " SysMain has been completely disabled to prevent disk thrashing." -ForegroundColor Green } elseif ($mediaType -eq "SSD" -or $mediaType -eq "Unspecified") { # برای SSD، استراتژی هوشمند Write-Host " SSD Detected. Applying SMART optimization." -ForegroundColor Green # در اینجا میتوانیم سرویس را فقط متوقف کنیم اما غیرفعال نکنیم، یا بسته به انتخاب کاربر عمل کنیم # توصیه برای گیمینگ حرفهای: غیرفعال کردن Stop-Service -Name "SysMain" -Force Set-Service -Name "SysMain" -StartupType Manual Write-Host " SysMain set to Manual/Stopped. Ready for Gaming." -ForegroundColor Green } } else { Write-Host " SysMain service not found (Already removed?)." -ForegroundColor DarkGray } }
بسیاری از کاربران از ابزارهایی مانند Razer Cortex یا Wise Game Booster استفاده میکنند. تفاوت WinPerf در فلسفه طراحی آن است:
شفافیت: ابزارهای تجاری "جعبه سیاه" (Black Box) هستند. شما دقیقاً نمیدانید چه کاری انجام میدهند. WinPerf (به عنوان یک مفهوم یا اسکریپت متنباز) کاملاً شفاف است.
سربار صفر (Zero Overhead): ابزارهای بوستر خودشان یک برنامه سنگین هستند که رم و CPU مصرف میکنند! WinPerf تغییرات را اعمال کرده و سپس خود را میبندد. هیچ پروسهای از WinPerf در حین بازی باز نمیماند.
هدفگیری دقیق: WinPerf به جای بستن تصادفی پروسهها، گلوگاههای معماری (مانند SysMain و WSearch) را هدف قرار میدهد که تأثیر اثبات شدهای بر I/O دارند.
اگر ترجیح میدهید بدون استفاده از ابزار، کنترل سیستم را به دست بگیرید، در اینجا متدولوژی دقیق و ایمن برای خلع سلاح SysMain و سرویسهای وابسته ارائه شده است.
این روش ایمنترین راه است و قابلیت بازگشت سادهای دارد.
کلیدهای ترکیبی Win + R را فشار دهید.
عبارت services.msc را تایپ کرده و Enter بزنید.
در لیست الفبایی، به دنبال SysMain بگردید.
روی آن دابلکلیک کنید تا پنجره Properties باز شود.
روی دکمه Stop کلیک کنید و صبر کنید تا سرویس متوقف شود.
منوی کشویی Startup type را باز کرده و گزینه Disabled را انتخاب کنید.
روی Recovery تب کلیک کنید و همه گزینههای "First failure" و غیره را روی "Take No Action" تنظیم کنید تا ویندوز به طور خودکار آن را دوباره روشن نکند.
همین مراحل را برای سرویس Windows Search (اگر از جستجوی فایل استفاده نمیکنید) تکرار کنید.
برای کاربران حرفهای که سرعت را ترجیح میدهند. ترمینال (CMD یا PowerShell) را با دسترسی Admin باز کنید و دستورات زیر را وارد کنید :
DOS
:: توقف سرویس SysMain net stop SysMain :: غیرفعال کردن دائم SysMain sc config SysMain start= disabled :: توقف و غیرفعال کردن Windows Search (اختیاری) net stop WSearch sc config WSearch start= disabled
(نکته فنی: فاصله بعد از علامت مساوی در دستور sc config الزامی است. این بخشی از سینتکس عجیب دستوری ویندوز است.)
در برخی نسخههای ویندوز، سرویسها ممکن است دوباره فعال شوند. تغییر در رجیستری حکم نهایی را صادر میکند.
regedit را باز کنید.
به مسیر زیر بروید: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
کلید Start را پیدا کنید و مقدار آن را به 4 تغییر دهید (Hexadecimal).
همچنین در پوشه Schedule در همان مسیر سرویسها، مقدار Start را بررسی کنید تا از غیرفعال بودن زمانبندیهای وابسته اطمینان حاصل کنید.
هیچ بهینهسازی بدون هزینه نیست. غیرفعال کردن SysMain، هرچند برای گیمینگ مفید است، عوارضی دارد که باید صادقانه بررسی شوند.
زمان بوت ویندوز: SysMain در فرآیند بوت، فایلهای ضروری را هوشمندانه بارگذاری میکند. بدون آن، بوت شدن ویندوز (مخصوصاً روی HDD) ممکن است ۱۰ تا ۲۰ ثانیه بیشتر طول بکشد. روی SSD این تفاوت ناچیز (۱-۳ ثانیه) است.
اولین اجرای برنامهها (Cold Launch): اولین باری که برنامهای سنگین مثل فتوشاپ را باز میکنید، ممکن است کمی کندتر باشد زیرا دادهها از قبل در رم نیستند. اما اجراهای بعدی (Warm Launch) به دلیل کش شدن در رم توسط خود ویندوز، سریع خواهند بود.
عدم تأثیر بر کش فایل: توجه داشته باشید که ویندوز هنوز هم از رمِ خالی برای کش کردن فایلهای دیسک استفاده میکند (Standby List معمولی). SysMain فقط بخش "پیشبینانه" و "فعال" این ماجراست. پس شما تمام مزایای کشینگ را از دست نمیدهید.
استراتژی پیشنهادی: اگر یک گیمر هستید، مزایای حذف لگ و آزادسازی I/O دیسک در حین بازی، بسیار ارزشمندتر از چند ثانیه تاخیر در بوت شدن سیستم است. با این حال، اگر سیستم شما عمدتاً برای کارهای اداری (آفیس، وبگردی) استفاده میشود و هارد HDD دارید، شاید بهتر باشد SysMain را فعال نگه دارید.
غیرفعال کردن SysMain و استفاده از ابزارهایی مانند WinPerf، نمادی از تغییر نگرش کاربر نسبت به سیستم عامل است. ما از کاربرانی منفعل که اجازه میدهند سیستم عامل منابعشان را مدیریت کند، به کاربرانی فعال تبدیل میشویم که اولویتها را تعیین میکنند.
شواهد فنی، بنچمارکها و تحلیلهای معماری نشان میدهند که برای یک سیستم گیمینگ (بهویژه سیستمهای میانرده یا دارای HDD)، خاموش کردن موتورهای پیشبینیکننده ویندوز مانند SysMain، یکی از مؤثرترین و کمهزینهترین روشها برای دستیابی به ثبات نرخ فریم (Frame Rate Stability) و حذف لگهای آزاردهنده است. این کار FPS شما را دو برابر نمیکند، اما تضمین میکند که فریمهایی که سختافزارتان تولید میکند، بدون وقفه و سکته به مانیتور شما میرسند.
امروز، با دانشی که از اعماق کرنل ویندوز به دست آوردهاید و ابزارهایی که در اختیار دارید، میتوانید ماشینی بسازید که تنها یک هدف دارد: اجرای بینقص بازی.
