تنظیمات حافظه در Analysis services optimization
این مقاله پیکربندی حافظه را در سرویس های تجزیه و تحلیل سرور SQL و سرویس های تجزیه و تحلیل Azure شرح می دهد. تغییر این تنظیمات ممکن است بر عملکرد و خطاهای حافظه تأثیر بگذارد.
وقتی نمونههایی از سرویسهای تجزیه و تحلیل سرور SQL (SSAS) یا سرویسهای تجزیه و تحلیل Azure را مدیریت میکنید، میتوانید تنظیمات یک نمونه یا اینستنس از حافظه را تغییر دهید. تنظیمات پیشفرض معمولاً برای پیکربندیهای عمومی مناسب هستند. که گفته شد، ممکن است بخواهید تنظیمات دیگری را برای بهینه سازی حجم کاری سنگین تر، dedicated Machine یا حل خطاهای حافظه در شرایط خاص در نظر بگیرید. هدف مقاله ارائه نکات کاربردی برای بهینه سازی تنظیمات حافظه برای سناریوهای خاص است. مگر اینکه در غیر این صورت مشخص شده باشد، تنظیمات برای تمام نسخه های خدمات تحلیلی (AS) اعمال می شود.
این مقاله توضیح نمی دهد که چگونه خدمات تجزیه و تحلیل از حافظه استفاده می کند. فصل 14 مدل سازی جدولی در سرویس های آنالیز سرور SQL شامل توضیح کاملی در مورد مدیریت حافظه در سرویس های آنالیز می باشد.
سلب مسئولیت: قبل از هر گونه تغییر در تنظیمات حافظه خود، اسناد را به دقت بخوانید. قبل و بعد از هر تغییری، همیشه معیارهای عملکرد و حافظه را اندازه بگیرید و اگر تغییرات اعمال شده نتایج مورد انتظار را ایجاد نکرد، به تنظیمات حافظه اصلی برگردید.
دسترسی به تنظیمات حافظه
برای دسترسی به تنظیمات حافظه، باید:
- باز کردن استودیوی مدیریت سرور SQL (SSMS)
- به نمونه خدمات تجزیه و تحلیل متصل شوید،
- روی نام سرور در Object Explorer کلیک راست کرده و از منوی زمینه گزینه Properties را انتخاب کنید.
- صفحه عمومی را انتخاب کنید،
- چک باکس Show Advanced (All) Properties را علامت بزنید،
- به تنظیمات در گروه حافظه بروید.
HardMemoryLimit
در ادامه مقاله سرویسهای تجزیه و تحلیل سرور SQL (SSAS) بدانید که این حداکثر حافظه ای است که AS می تواند اختصاص دهد. اگر AS از محدودیت دیسک درایو فیزیکی یا HDD فراتر رود، سیستم به شدت جلسات فعال را از بین می برد تا استفاده از حافظه را کاهش دهد. جلساتی که به این دلیل از بین میروند ، خطایی دریافت می کنند که لغو به دلیل فشار حافظه را توضیح می دهد. با VertiPaqPagingPolicy در 0، همچنین محدودیتی برای حداکثر مجموعه کاری فرآیند است. اگر HardMemoryLimit روی 0 تنظیم شده باشد، از یک مقدار پیشفرض بین TotalMemoryLimit و کل حافظه فیزیکی استفاده میکند – یا فضای آدرس مجازی کل، اگر روی یک ماشین 32 بیتی هستید که حافظه فیزیکی در آن از حافظه مجازی بیشتر است.
- نکته: این مقدار را نمی توان در Azure Analysis Services تغییر داد، جایی که از تمام حافظه فیزیکی موجود استفاده می کند. همین تنظیم (99 یا 100) را می توان در یک نمونه SSAS که منحصراً به خدمات تجزیه و تحلیل اختصاص داده شده است، استفاده کرد.
HeapTypeFor Objects
سیستم heap را برای تخصیص اشیاء با اندازه ثابت، مانند نمونه هایی از کلاس ها در C++ انتخاب کنید. C++ زبانی است که مایکروسافت برای نوشتن خدمات تحلیلی استفاده می کند. مقادیر ممکن به شرح زیر است.
ارزش توضیحات
1- موتور تنظیمات مورد استفاده را تعیین می کند.
0 از هیپ با تکه تکه شدن پایین ویندوز (LFH) استفاده می کند.
1 از پیاده سازی Heap سفارشی سرویس های تجزیه و تحلیل استفاده می کند.
3 هر شی دارای Heap خدمات تحلیلی مخصوص به خود است.
- نکته: پیشنهاد این است که این تنظیم را از مقدار پیش فرض -1 تغییر ندهید. نسخه های قدیمی SSAS (2012/2014) به تنظیمات خاصی نیاز دارند تا از مشکلات تکه تکه شدن حافظه جلوگیری شود. اگر از نسخه قدیمی SSAS ارتقا داده اید، باید مقدار -1 را تنظیم کنید. در ادامه با نحوه پیکربندی حافظه را در سرویس های تجزیه و تحلیل سرور SQL بیشتر آشنا میشویم.
دوره کلی صفر تا صد آنالیز در SSAS
LowMemoryLimit
این نقطه ای است که سیستم(در ادامه پیکربندی حافظه را در سرویس های تجزیه و تحلیل سرور SQL) شروع به پاک کردن کش ها برای آزاد کردن حافظه می کند. همانطور که استفاده از حافظه بالاتر از حد کم حافظه افزایش می یابد، SSAS در مورد بیرون انداختن داده های حافظه پنهان تا زمانی که به محدودیت حافظه بالا/کل برسد، تهاجمی تر می شود. در این مرحله، هر چیزی که سنجاق نشده است را بیرون میکند.
AS تا زمانی که به این آستانه نرسد، حافظه اختصاص داده شده را آزاد نمی کند.
- نکته: این مقدار را در سرورهایی که چندین نمونه از SSAS در حال اجرا هستند، یا زمانی که سرویسهای دیگر با SSAS برای حافظه رقابت میکنند، کاهش دهید، و میخواهید حافظه را از SSAS آزاد کنید، بنابراین میزان صفحهبندی تولید شده توسط سرویسهای دیگر را کاهش دهید. مقدار پیش فرض 65 برای سرورهای اختصاص داده شده به AS مناسب است. ممکن است برای سرورهای اختصاصی با مقدار زیادی رم (بیش از 100 گیگابایت) این تنظیم را به 70 یا 75 افزایش دهید.
MemoryHeapType
سیستم heap را برای تخصیص اشیاء با اندازه های پویا، مانند رشته ها، بردارها، بایت ها و غیره انتخاب کنید. مقادیر ممکن به شرح زیر است:
ارزش توضیحات
1- موتور تنظیمات مورد استفاده را تعیین می کند.
1 از پیاده سازی سفارشی Heap خدمات تجزیه و تحلیل (AS) استفاده می کند.
2 از هیپ با تکه تکه شدن پایین ویندوز (LFH) استفاده می کند.
5 تخصیص دهنده هیبریدی. این تخصیص دهنده از Windows LFH
برای تخصیص <= 16 کیلوبایت و از AS Heap برای تخصیص> 16 کیلوبایت استفاده می کند
6 تخصیص دهنده بلوک های ساختمانی Threading اینتل (TBB).
- نکته: پیشنهاد این است که این تنظیم را از مقدار پیش فرض -1 تغییر ندهید. فقط نسخههای SSAS زودتر از SP1 2016 ممکن است نیاز به تنظیم تنظیمات حافظه داشته باشند تا از نشت حافظه و مشکلات عملکرد ناشی از تخصیص بلوکهای حافظه بزرگ در Windows LFH جلوگیری شود.
QueryMemoryLimit
حافظه مورد استفاده در هنگام پرس و جو را کنترل کنید. این تنظیم در نسخههای SSAS قبل از 2019 در دسترس نیست. در SSAS 2019، این تنظیم اجرای نتایج پرسوجو میانی DAX را محدود میکند و برای جستارهای MDX اعمال نمیشود.
در Azure Analysis Services، این تنظیم فقط به قرقرههای حافظه محدود نمیشود و برای تمام حافظههای مورد استفاده هر دو پرسوجوهای DAX و MDX اعمال میشود.
مقدار 0 این محدودیت را فعال نمی کند.
- نکته: اگر بسیاری از کاربران هنگام اجرای پرسوجوها با خطا مواجه میشوند، این محدودیت را کاهش دهید زیرا حافظه توسط درخواستهای فردی مصرف میشود که مقدار زیادی از حافظه را در زمان درخواست مصرف میکنند. پرس و جوهای طولانی مدت و تحقق بیش از حد می تواند باعث این امر شود. با اعمال محدودیت پرس و جو، پرس و جوی طولانی مدت که حافظه زیادی مصرف می کند ممکن است زودتر شکست بخورد و خطر کند شدن یا توقف سایر پرس و جوهایی که درخواست حافظه بالایی ندارند کاهش می یابد.
TotalMemoryLimit
اگر استفاده از حافظه از حد کل حافظه بیشتر شود، مدیر حافظه تمام داده های کش شده را که در حال حاضر استفاده نمی شود، خارج می کند. TotalMemoryLimit همیشه باید کمتر از HardMemoryLimit باشد.
- نکته: این مقدار را نمی توان در Azure Analysis Services تغییر داد، جایی که به طرح خدمات بستگی دارد. این مقدار را در سرورهایی که چندین نمونه از SSAS در حال اجرا هستند، یا زمانی که سرویسهای دیگر با SSAS برای حافظه رقابت میکنند، کاهش دهید، و میخواهید حافظه را از SSAS آزاد کنید و در نتیجه صفحهبندی تولید شده توسط سرویسهای دیگر را کاهش دهید. مقدار پیش فرض 80 برای سرورهای اختصاص داده شده به AS مناسب است. ممکن است برای سرورهای اختصاصی با مقدار زیادی رم (بیش از 100 گیگابایت) این تنظیم را به 90 یا 95 افزایش دهید.
از MemoryHolders استفاده کنید
هنوز مستند نیست. ما فرض می کنیم که فقط برای استفاده داخلی است.
VertiPaqMemoryLimit
اگر VertiPaqPagingPolicy را روی 0 تنظیم کنید، VertiPaqMemoryLimit مقدار کل حافظه ای را که VertiPaq می تواند در مجموعه کاری قفل کند را تعیین می کند – یعنی کل حافظه ای که می تواند برای پایگاه های داده درون حافظه استفاده شود. به یاد داشته باشید که AS ممکن است به دلایل دیگری از حافظه بیشتری استفاده کند.
وقتی VertiPaqPagingPolicy روی 1 تنظیم می شود، محدودیتی برای حافظه فیزیکی که توسط VertiPaq استفاده می شود و در حافظه پین می شود، تعیین می کند. این اجازه می دهد تا صفحه بندی برای حافظه باقیمانده (حافظه متعهد مجازی) بالاتر از این حد باشد.
- نکته: اگر میخواهید برای نمونهای از SSAS در سروری که سایر سرویسها نیز برای حافظه موجود رقابت میکنند، حافظه را کاهش دهید، منطقی است که VertiPaqMemoryLimit را روی عددی کمتر از LowMemoryLimit تنظیم کنید.
VertiPaqPagingPolicy
این تنظیم صفحه بندی داده های مدیریت شده توسط موتور ذخیره سازی VertiPaq را کنترل می کند.
ارزش توضیحات
0 صفحه بندی را غیرفعال می کند. اگر حافظه کافی نباشد، پردازش با خطای
خارج از حافظه انجام نمی شود.
1 صفحه بندی روی دیسک را با استفاده از فایل صفحه سیستم عامل
(pagefile.sys) فعال می کند.
وقتی آن را روی 1 تنظیم می کنید، فقط دیکشنری های هش در حافظه قفل می شوند. صفحات داده را می توان بر روی دیسک شستشو داد. این امر VertiPaq را قادر می سازد تا از حافظه بیشتری نسبت به آنچه در دسترس است استفاده کند. به خاطر داشته باشید که اگر صفحهبندی اتفاق بیفتد، عملکرد دچار افت شدید میشود.
پیشفرض برای سرویسهای تحلیل Azure 0 (صفحهبندی غیرفعال) و برای SSAS 1 است (صفحهبندی فعال است). از آنجایی که عواقب انتخاب یکی یا دیگری شدید است، یادآوری مجدد رفتار AS در دو حالت مفید است.
اندازه مجموعه کاری AS برای استفاده از VertipaqMemoryLimit تنظیم شده است – بنابراین تضمین شده است که حافظه فیزیکی برای داده های Vertipaq در دسترس باشد.
اگر AS دارای امتیازات کافی باشد، ممکن است حافظه Vertipaq را در حافظه فیزیکی قفل کند – اگر حافظه در دسترس نباشد، تخصیص ممکن است با شکست مواجه شود.
با مقدار پیشفرض 20 درصد، محدودیت 5 نمونه SSAS وجود دارد که میتوانند روی یک سرور اجرا شوند.
هنگامی که حافظه پردازش از LowMemoryLimit فراتر می رود و به TotalMemoryLimit نزدیک می شود، پاک کننده شروع به تمیز کردن کش ها می کند و در نهایت سیستم به حالت پانیک می رود و شروع به لغو جلسات می کند.
اگر صفحهبندی روشن است :
اندازه مجموعه کاری AS طوری تنظیم شده است که به VertipaqMemoryLimit برسد.
فرآیند پاک کننده وانمود می کند که تخصیص های Vertipaq وجود ندارد – قبل از LowMemoryLimit + شروع به تمیز کردن نمی کند.
در این شرایط، فرآیند AS به شدت بیش از حد متعهد است.
هنگامی که درخواستهای حافظه اضافی وجود دارد، AS صریحاً به ویندوز میگوید که مقداری از حافظه Vertipaq را صفحهبندی کند و مجموعه کاری فرآیند را برای سایر نیازهای حافظه آزاد کند. هنگامی که AS به داده های صفحه بندی شده نیاز دارد، به طور خودکار توسط ویندوز صفحه بندی می شود، که برخی از داده های دیگر را صفحه می کند.
- نکته: در طول پردازش، حافظه VertiPaq مورد نیاز می تواند دو برابر حافظه اشیاء پردازش شده باشد. این می تواند یک محدودیت باشد، به خصوص در نمونه های Azure Analysis Services که با یک برنامه سرویس اجرا می شوند که حجم حافظه دو برابر بزرگترین پایگاه داده را ندارد. با فعال کردن صفحهبندی VertiPaq، AS میتواند پردازش را تکمیل کند، حتی اگر حافظه کافی برای نگهداری اشیاء موجود و اشیاء جدید در حافظه وجود نداشته باشد. استفاده منصفانه از صفحه بندی، تکمیل پردازش داده های برنامه ریزی شده برای اجرا در ساعات غیر اوج مصرف را تضمین می کند، در حالی که داده های موجود را در دسترس کاربر نگه می دارد – البته با عملکرد کندتر. به عنوان یک جایگزین، می توانید یک نسخه پشتیبان از پایگاه داده موجود و پاک کردن داده ها قبل از پردازش داده ها را در نظر بگیرید. در آن صورت، در حین پردازش، پایگاه داده در دسترس کاربران قرار نمی گیرد.
کانال تلگرام ما را دنبال کنید
صفحه اینستاگرام ما را دنبال کنید
دوره های مرتبط
دوره کامل تضمینی هوش تجاری با رویکرد کسب درآمد در داخل و خارج از کشور
آنالیز داده و هوش تجاری یکی از پردرآمدهای شغل های دنیا چه در داخل کشور و چه خارج از کشور است. ما در دوره آموزشی صفر تا صد هوش تجاری را به صورت تضمینی آموزش میدهیم.
آموزش ویدیویی هوش تجاری در SQL
شما در این دوره آموزشی (آموزش ویدیویی هوش تجاری در SQL) با مفاهیم و اصول هوش تجاری در SQL آشنا می شوید.
آموزش صفر تا صد داشبورد سازی در سی شارپ
آموزش کاملا حرفه ای ویدیویی هوش تجاری در Oracle
دیدگاهتان را بنویسید