📄 محتوای کامل
چرا باید بهینه شود؟
Windows Server ۲۰۱۹ پس از نصب اولیه، سرویس ها و ویژگی های زیادی فعال دارد که در VPS نیاز نیست و مصرف منابع را بالا می برد:
-
سرویس های گرافیکی غیرضروری
-
Indexing و Search
-
خدمات Windows Update همیشه فعال
-
Event Logs و Telemetry
با بهینه سازی این موارد، سرور سبک تر، سریع تر و آماده ساخت Template می شود.
مرحله ۱: نصب آخرین آپدیت ها
۱. PowerShell را با دسترسی Administrator باز کنید:
# بروزرسانی سیستمInstall-Module PSWindowsUpdate –Force
Import-Module PSWindowsUpdate
Get-WindowsUpdate –AcceptAll –Install –IgnoreReboot
۲. سیستم را ریستارت کنید:
Restart-Computerمرحله ۲: نصب ابزارهای ضروری VMware یا Hyper-V
برای VMware:
-
VMware Tools: افزایش عملکرد شبکه و دیسک، هماهنگی زمان و shutdown امن
# از GUI VMware Tools Installer استفاده کنید
برای Hyper-V:
-
Integration Services نصب باشد (معمولاً در Windows Server ۲۰۱۹ از قبل موجود است)
مرحله ۳: حذف سرویس های غیرضروری
سرویس های گرافیکی (GUI) اضافی:
-
اگر از Windows Server Core استفاده نمی کنید، می توانید بعضی Features غیرضروری حذف شوند:
Stop-Service WSearch
Set-Service WSearch –StartupType Disabled
# غیر فعال کردن SysMain (Superfetch)
Stop-Service SysMain
Set-Service SysMain –StartupType Disabled
سرویس های Telemetry و Feedback:
# غیر فعال کردن DiagTrack (Data Collection)Stop-Service DiagTrack
Set-Service DiagTrack –StartupType Disabled
# غیر فعال کردن Connected User Experience
Stop-Service “dmwappushservice”
Set-Service “dmwappushservice” –StartupType Disabled
مرحله ۴: بهینه سازی RAM و Page File
۱. تنظیمات Page File بهتر:
# تنظیم Page File اتوماتیکwmic computersystem where name=“%computername%” set AutomaticManagedPagefile=True
۲. غیر فعال کردن Startup غیرضروری:
-
از Task Manager → Startup → Disable نرم افزارهای غیر ضروری
مرحله ۵: بهینه سازی بوت
-
غیر فعال کردن سرویس های غیرضروری در msconfig (System Configuration) یا PowerShell:
Get-Service | Where-Object {$_.Status -eq “Running”} | Sort-Object Name
# غیرفعال کردن سرویس غیر ضروری
Set-Service “ServiceName” –StartupType Disabled
مرحله ۶: پاکسازی دیسک و لاگ ها
# پاکسازی Temp و فایل های غیرضروریRemove-Item –Path “C:WindowsTemp*” –Recurse –Force
Remove-Item –Path “$env:Temp*” –Recurse –Force
# پاکسازی Event Logs
wevtutil el | Foreach-Object {wevtutil cl $_}
مرحله ۷: آماده سازی Template
-
ریست کردن SID و Machine ID قبل از Template شدن VPS (خیلی مهم برای Windows):
cd C:WindowsSystem32Sysprep
sysprep.exe /generalize /oobe /shutdown
-
گزینه Generalize باعث می شود هر VPS که از Template ساخته شود یک SID جدید داشته باشد.
-
بعد از shutdown می توانید VM را Template کنید.
مرحله ۸: تنظیمات نهایی برای شبکه و Performance
۱. فعال کردن TCP Fast Open و تنظیمات شبکه (در Windows محدودتر است):
-
اطمینان از فعال بودن TCP Chimney Offload:
netsh int tcp set global rss=enabled
netsh int tcp set global netdma=enabled
۲. خاموش کردن Indexing روی دیسک های دیتا:
# غیر فعال کردن indexing برای درایو D:dismount-diskimage –ImagePath “D:”
جمع بندی
بعد از انجام این مراحل:
-
مصرف RAM کاهش می یابد
-
سرعت بوت و I/O افزایش پیدا می کند
-
سرویس های غیرضروری حذف شده اند
-
سرور آماده ساخت Template VPS است
پیشنهاد نگارنوین
برای مدیریت بهتر Windows Server می توانید از:
-
Windows Admin Center
-
Remote Server Administration Tools (RSAT)
استفاده کنید.
🛠️ ۳. اسکریپت PowerShell برای اتوماسیون بهینه سازی
در فایل Template ویندوز خیلی خوبه یک اسکریپت PowerShell داشته باشی تا همه مراحل بالا را خودکار انجام دهد:
# نگارنوین – اسکریپت بهینه سازی Windows Server ۲۰۱۹ برای VPSWrite-Output “شروع بهینه سازی Windows Server ۲۰۱۹…”
# نصب آپدیت ها
Install-Module PSWindowsUpdate –Force
Import-Module PSWindowsUpdate
Get-WindowsUpdate –AcceptAll –Install –IgnoreReboot
# حذف سرویس های غیرضروری
Write-Output “غیر فعال کردن سرویس های غیرضروری…”
Stop-Service WSearch –ErrorAction SilentlyContinue
Set-Service WSearch –StartupType Disabled
Stop-Service DiagTrack –ErrorAction SilentlyContinue
Set-Service DiagTrack –StartupType Disabled
# بهینه سازی Page File
Write-Output “تنظیم Page File…”
wmic computersystem where name=“%computername%” set AutomaticManagedPagefile=True
# پاکسازی Temp و لاگ ها
Write-Output “پاکسازی فایل های موقت و لاگ ها…”
Remove-Item –Path “C:WindowsTemp*” –Recurse –Force –ErrorAction SilentlyContinue
Remove-Item –Path “$env:Temp*” –Recurse –Force –ErrorAction SilentlyContinue
wevtutil el | ForEach-Object { wevtutil cl $_ }
Write-Output “بهینه سازی کامل شد. سیستم آماده Sysprep است.”