07
مهSharePoint On-Premises یکی از قدرتمندترین پلتفرمهای مدیریت محتوا و همکاری سازمانی است که توسط شرکتها و سازمانهای ایرانی بهطور گسترده استفاده میشود. اما با گذشت زمان و افزایش حجم دادهها، کاهش سرعت شیرپوینت به یک چالش جدی تبدیل میشود.
❌ مشکلات رایج سرعت در SharePoint:
بارگذاری کند صفحات
تأخیر در جستجو
خطاهای Timeout
مصرف بالای RAM و CPU
در این مقاله کامل و عملی، ۱۵ تکنیک اثباتشده برای افزایش سرعت شیرپوینت را آموزش میدهیم. این راهکارها برای SharePoint 2016، 2019 و 2022 قابل اجرا هستند.
✅ مشکل: پایگاهدادههای SharePoint پس از مدتی fragment میشوند.
🔧 راهحل:
-- Rebuild Index برای جداول بزرگ
ALTER INDEX ALL ON [WSS_Content] REBUILD;
-- Update Statistics
EXEC sp_updatestats;
-- تنظیم Recovery Model به Simple برای پایگاهداده TempDB
ALTER DATABASE TempDB SET RECOVERY SIMPLE;
✅ مشکل: بارگذاری تصاویر و فایلهای سنگین کند است.
🔧 راهحل:
افزودن این کد به فایل web.config در مسیر C:\inetpub\wwwroot\wss\VirtualDirectories\پورت:
تنظیمات پیشنهادی:
maxSize: 10GB برای سرورهای متوسط
max-age: 86400 ثانیه (۲۴ ساعت)
location: یک درایو SSD جداگانه
✅ مشکل: صفحات پورتال برای هر کاربر مجدداً render میشوند.
🔧 راهحل:
در مرکز مدیریت SharePoint:
به System Settings → Manage Farm Features بروید
Page Output Cache را فعال کنید
Output Cache Profile را تنظیم کنید:
✅ مشکل: محدودیتهای پیشفرض برای بارهای سنگین مناسب نیستند.
🔧 راهحل:
در PowerShell با Run as Administrator:
# افزایش Connection Timeout
$webApp = Get-SPWebApplication "http://پورتال-شما"
$webApp.WebService.HttpThrottleSettings.PerformanceLevel = "IntraSite"
$webApp.Update()
# افزایش MaxUploadSize برای بارگذاری فایلهای بزرگ
$webApp.WebService.ClientRequestServiceSettings.MaxReceivedMessageSize = 209715200
$webApp.WebService.ClientRequestServiceSettings.MaxBufferPoolSize = 209715200
مقادیر پیشنهادی:
MaxUploadSize: 2GB (2097152000)
MaxReceivedMessageSize: 200MB
PerformanceLevel: IntraSite برای محیطهای داخلی
✅ مشکل: ترافیک روی یک سرور متمرکز شده است.
🔧 راهحل:
برای محیطهای کوچک (۲ سرور):
استفاده از Windows NLB (رایگان)
تنظیم Session Affinity (Sticky Sessions)
برای محیطهای بزرگ:
استفاده از Hardware Load Balancer (F5, Citrix)
Least Connections Algorithm
✅ مشکل: حجم فایلهای CSS و JavaScript بالا است.
🔧 راهحل:
در IIS Manager:
سرور را انتخاب کنید
Compression را باز کنید
تنظیمات زیر را اعمال کنید:
Static Compression: Enabled
Dynamic Compression: Enabled
Minimum File Size: 2700 bytes
✅ مشکل: جستجوهای SharePoint کند هستند.
🔧 راهحل:
# تنظیم Crawl Performance
$ssa = Get-SPEnterpriseSearchServiceApplication
$ssa.SetProperty("CrawlPerformanceLevel", 3) # 1=Slow, 5=Maximum
# کاهش تعداد نتایج پیشفرض
$ssa.SetProperty("MaxResultsPerPage", 50)
# بهینهسازی Index Partitioning
New-SPEnterpriseSearchIndexPartition -SearchApplication $ssa -IndexLocation "D:\SearchIndex"
✅ مشکل: لیستهای با بیش از 5000 آیتم کند میشوند.
🔧 راهحل:
تکنیکهای مدیریت لیست:
فیلدهای ایندکسشده ایجاد کنید
از Folderها برای سازماندهی استفاده کنید
List View Threshold را مدیریت کنید:
# تنظیم Threshold
$webApp = Get-SPWebApplication "http://پورتال-شما"
$webApp.MaxItemsPerThrottledOperation = 10000
$webApp.Update()
قانون طلایی: هرگز بیش از 5000 آیتم در یک View نمایش ندهید.
✅ مشکل: پایگاه داده SQL برای فایلهای BLOB سنگین شده است.
🔧 راهحل:
# نصب و پیکربندی RBS
Enable-SPRBS -Database "WSS_Content" -Force
# تنظیم Provider
$rbsSettings = Get-SPRBSettings -Database "WSS_Content"
$rbsSettings.ProviderName = "FILESTREAM"
$rbsSettings.Update()
مزایای RBS:
کاهش حجم پایگاه داده
افزایش سرعت Backup/Restore
امکان ذخیرهسازی در Storage ارزانتر
✅ مشکل: تنظیمات Farm بهکندی بارگذاری میشوند.
🔧 راهحل:
# افزایش Object Cache Size
$farm = Get-SPFarm
$farm.Properties["ObjectCacheSize"] = 2048 # به مگابایت
$farm.Update()
# تنظیمات Distributed Cache
$instanceName ="SPDistributedCacheService Name=AppFabricCachingService"
$serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq $env:computername}
$serviceInstance.Unprovision()
$serviceInstance.Provision()
✅ مشکل: تاخیر شبکه بر عملکرد تأثیر میگذارد.
🔧 راهحل:
تنظیمات شبکه:
MTU Size را به 1500 تنظیم کنید
Jumbo Frames را برای شبکه داخلی فعال کنید
DNS Timeout را کاهش دهید:
# تنظیم DNS Cache
Set-DnsClientCache -MaxCacheSize 2048
Set-DnsClientCache -EntryExpiryTimeout 3600
✅ مشکل: نمیدانید کجا bottleneck دارید.
🔧 راهحل:
ابزارهای رایگان مانیتورینگ:
SharePoint Health Analyzer
ULS Viewer برای لاگها
SQL Server Profiler
PowerShell برای مانیتورینگ:
# مانیتورینگ Performance Counters
Get-Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 10
# بررسی Slow Queries در SQL
SELECT TOP 10 * FROM sys.dm_exec_query_stats
ORDER BY total_worker_time DESC
✅ مشکل: مشکلات مربوط به سمت کاربر.
🔧 راهحل:
برای کاربران نهایی:
استفاده از Microsoft Edge یا Chrome آخرین نسخه
غیرفعال کردن Add-onهای غیرضروری
Clear Cache مرورگر ماهی یک بار
تنظیمات Group Policy:
User Configuration → Policies → Admin Templates → Windows Components → Internet Explorer
→ Delete Browsing History on exit: Enabled
✅ مشکل: فایلهای Log حجم زیادی میگیرند.
🔧 راهحل:
# تنظیمات ULS Log
$logSettings = Get-SPDiagnosticConfig
$logSettings.MaxTotalSizeInGB = 10
$logSettings.LogCutInterval = 60
$logSettings.LogMaxDiskSpaceUsageEnabled = $true
$logSettings.Update()
# فشردهسازی Logهای قدیمی
Compress-Archive -Path "C:\ULS\Logs\*.log" -DestinationPath "C:\ULS\Archive\$(Get-Date -Format 'yyyy-MM').zip"
✅ مشکل: باگهای شناختهشده عملکرد را کاهش میدهند.
🔧 راهحل:
برنامه بهروزرسانی:
مارس و سپتامبر: Cumulative Updates
هر ماه: Security Updates
فوری: Hotfixهای performance
منابع بهروزرسانی:
| تکنیک | زمان اجرا | تأثیر بر سرعت | سطح دشواری |
|---|---|---|---|
| SQL Optimization | ۲ ساعت | ⭐⭐⭐⭐⭐ (۳۰-۵۰%) | پیشرفته |
| Blob Cache | ۳۰ دقیقه | ⭐⭐⭐⭐ (۲۰-۴۰%) | متوسط |
| Output Cache | ۱ ساعت | ⭐⭐⭐⭐ (۱۵-۳۵%) | متوسط |
| Load Balancing | ۴ ساعت | ⭐⭐⭐⭐⭐ (۴۰-۶۰%) | پیشرفته |
| GZIP Compression | ۱۵ دقیقه | ⭐⭐⭐ (۱۰-۲۵%) | مبتدی |
هرگز Registry را بدون Backup تغییر ندهید
هرگز Serviceهای SharePoint را Stop نکنید
هرگز در Production آزمایش نکنید
همیشه قبل از تغییرات Backup بگیرید
همیشه در Test Environment تست کنید
همیشه تغییرات را مستند کنید
SQL Server Optimization انجام شد
Blob Cache فعال شد
Output Cache تنظیم شد
Load Balance پیکربندی شد
GZIP Compression فعال شد
جستجو بهینهسازی شد
لیستها بررسی شدند
RBS پیادهسازی شد
Cacheها تنظیم شدند
شبکه بهینهسازی شد
مانیتورینگ راهاندازی شد
Client-Side تنظیم شد
Logها مدیریت شدند
Patchها بهروزرسانی شدند
تست Performance انجام شد
بررسی Logها
پاکسازی Cacheها
مانیتور Performance Counters
Rebuild Indexهای SQL
بهروزرسانی Windows و SharePoint
تست Backup و Recovery
بررسی Capacity Planning
آرشیو Logهای قدیمی
Review Security Settings
پاسخ: بهینهسازی SQL Server و پیادهسازی Load Balancing معمولاً بیشترین تأثیر (۳۰-۶۰%) را دارند.
پاسخ: برخی تکنیکها (مانند Load Balancing) نیاز به Downtime کوتاه دارند. بقیه را میتوان در ساعات کمترافیک اجرا کرد.
پاسخ: ۸۰% تکنیکها رایگان هستند. تنها هزینهها ممکن است برای Hardware Load Balancer یا SSDها باشد.
پاسخ: کل فرآیند ۱-۲ روز کاری برای یک متخصص باتجربه.
پاسخ: از SharePoint Health Analyzer و SQL Server Profiler استفاده کنید.
بهینهسازی عملکرد SharePoint یک فرآیند مداوم است، نه یک کار یکباره. با اجرای این ۱۵ تکنیک، میتوانید:
✅ سرعت بارگذاری صفحات را ۳-۵ برابر افزایش دهید
✅ مصرف منابع سرور را ۴۰-۶۰% کاهش دهید
✅ رضایت کاربران را بهطور چشمگیری بهبود بخشید
✅ هزینههای سختافزاری را کاهش دهید
توصیه نهایی: با تکنیکهای آسان و کمخطر (مانند Blob Cache و GZIP) شروع کنید، سپس به سراغ تکنیکهای پیشرفته بروید.
در خبرنامه ما مشترک شوید و آخرین اخبار و به روزرسانی های را در صندوق ورودی خود مستقیماً دریافت کنید.

دیدگاه بگذارید