محدود کردن حافظه اشغال شده توسط noderunner.exe در سرور شیرپوینت ۲۰۱۳

دوستان سلام

خیلی از ادمین ها و مدیران زیرساخت شرپوینت ۲۰۱۳ ، از بلعیده شدن فضای بسیار زیادی از حافظه رم و همچنین CPU در سرورهای WFE شرپوینت ۲۰۱۳ (سروری که شیرپوینت بر روی آن نصب میشود) توسط پروسسی به نام noderunner.exe و کندی شدید شیرپوینت مخصوصا زمانیکه شرپوینت و سرویس جستجو بر روی یک سرور راه اندازی میشوند،  گلایه می کنند.

این پروسس مهم ترین پروسس سرویس جستجوی شیرپوینت ۲۰۱۳ میباشد. این پروسس براساس وظایف خود و بازه های زمانی ای که برای آن تعریف شده به صورت خودکار کامپوننت های جستجو را فراخوانی می نماید. به همین علت نیاز به فضای زیادی از حافظه رم بر روی سرور دارد. با این تفاسیر هر زمان که کندی ای بر روی سرور شرپوینت اتفاق می افتد یکی از سرویس هایی که شدیداً حافظه رم را اشغال نموده است همین noderunner.exe میباشد. (در شکل زیر ساختار معماری جستجو در شرپوینت سرور را مشاهده می کنید)

6740.noderunner2

در تصویر زیر مشاهده می کنید این پروسس با نام Microsoft SharePoint Search Component در تسک منیجر بالاتر از سایر سرویس ها و پروسس های شرپوینت مشغول کار میباشد و فضا های زیادی از رم را بلعیده است :

image

اما راه حل برای آزادسازی این فضاها چیست؟

هر زمان که این مورد را در گوگل جستجو کنید، در اکثر وبلاگ ها راه حل زیر را برای محدود کردن فضای رم اشغال شده توسط این پروسس پیشنهاد کرده اند. شما هم میتوانید از این روش استفاده نمایید :

۱- ابتدا بر روی سرور شرپوینت از طریق خط فرمان PowerShell دستور زیر را اجرا کنید:

Set-SPEnterpriseSearchService -PerformanceLevel Reduced

۲- سپس بر روی سرور شرپوینت وارد آدرس زیر شوید :

C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0

در این آدرس فایل noderunner.exe.config را با یک ادیتور ویرایش کنید.

۳- حال در داخل فایل مقدار MemoryLimitMegabyte (تخمین حافظه رم ) را از صفر به هر مقداری مانند ۵۱۲ یا ۱۰۲۴ برحسب مگابایت تغییر دهید :

<nodeRunnerSettings memoryLimitMegabytes="1024" />

۴- حال تغییرات فایل را ذخیره نمایید. با اینکار شما پروسس noderunner.exe را محدود به استفاده از ۱۰۲۴ مگابایت فضای رم کرده اید و سرور شما نفسی خواهد کشید!

تا اینجا مشکل برطرف شد. اما برخی کارشناسان اعلام کرده اند که استفاده از این روش ممکن است سبب بروز خطاهای جدیدی در سرویس جستجوی شرپوینت شود :

    • The item was aborted because the pipeline did not respond within the appropriate time. This item will be retried in the next crawl
    • Unable to connect to system client with derived management URIs. Exception: Failed to connect to system manager. Microsoft.Office.Server.Search.Administration.Topology.ApplicationAdminLayer.Reconnect()
    • Unable to retrieve topology component health states. This may be because the admin component is not up and running

این کارشناسان اعلام کرده اند که مشکل Memory-leak در شرپوینت ۲۰۱۳ فقط در نسخه beta وجود داشته و در نسخه RTM یا نهایی این مورد وجود ندارد و شما نیازی به محدود کردن حافظه رم در noderunner ندارید. اما بنده و خیلی از همکارانم در محیطهای عملیاتی و نسخه های سرویس پک ۱ نیز این مشکل را مشاهده کرده ایم :.

راه حلی که این افراد برای اینگونه فارم ها پیشنهاد می کنند عبارت است از :

  1. غیرفعال کردن همه زمانبندی کرال ها در سرویس جستجوی شرپوینت
  2. محدود کردن Content Source ها و سایت ها جهت کرال
  3. متوقف کردن کامل سرویس جستجو در شرپوینت و فعال کردن آن هر زمانی که نیاز به جستجو باشد.

بنده شخصاً موافق موارد فوق نیستم چون سرویس جستجو یکی از سرویسهای مورد نیاز سازمان ها در شرپوینت میباشد. و پیشنهاد می کنم در صورت مواجه با این مشکل یا از محدود سازی حافظه رم در noderunner همراه با فضای رم بیشتر استفاده نمایید و یا توپولوژی فارم را طوری تغییر دهید که سرویس جستجوی شیرپوینت بر روی سرورهای مجزای دیگری راه اندازی و مدیریت شوند. برای اینکار میتوانید به مقاله و مستندات زیر مراجعه کنید :

http://technet.microsoft.com/en-us/library/dn342836.aspx

http://www.microsoft.com/en-gb/download/details.aspx?id=30374

 

موفق باشید.

پاسخ دهید