نمایش نتایج: از شماره 1 تا 9 از مجموع 9
سپاس ها 18سپاس
  • 1 توسط cy6er
  • 2 توسط MNaderi
  • 2 توسط Hakimi
  • 10 توسط Hakimi
  • 1 توسط CSW
  • 2 توسط th95

موضوع: اشغال بیش از حد رم در SQL Server روی ماشین مجازی ESXi

  
  1. #1
    نام حقيقي: hadi esmaeili

    خواننده
    تاریخ عضویت
    May 2012
    محل سکونت
    tehran
    نوشته
    93
    سپاسگزاری شده
    10
    سپاسگزاری کرده
    56

    اشغال بیش از حد رم در SQL Server روی ماشین مجازی ESXi

    با سلام.
    دوستان من یه موردی دارم توی یرور هایی که روش SQL نصبه.رم سرور 10 گیگ هستش و این سرور 9.89 از رمش اشغاله.
    خیلی برام عجیبه.توی Resource Monitor که میرم میبینم کل برنامه ها نباید از 2 گیگ بیشتر بشن ولی این للکی رم رو اشغال نشون میده.
    بیشتر هم ایم نورد رو توی سرورهایی دیدم که روش Sql دارن.
    توی تنظیمات Sql یه جا دیدم که زده بود بیشترین رمی که اشغال بشه چقدر باشه.من از 10 گیگ اوردمش رو 5 گیگ ولی بازم تاثیری نداشت.



    موضوعات مشابه:

  2. #2
    نام حقيقي: cy6er

    خواننده شناسه تصویری cy6er
    تاریخ عضویت
    Feb 2012
    محل سکونت
    نامشخص
    نوشته
    172
    سپاسگزاری شده
    188
    سپاسگزاری کرده
    9
    پس از تنظيم Ram Sql Server يك بار SQL Server بايد ريستارت شود تا تنظيمات RAM اعمال شود معمولا 2/3 RAM سرور را به SQL Server اختصاص مي دهند قابل ذكر است علت هاي مختلفي باعث اين مشكل مي شود از جمله به هم ريختن Index هاي ديتابيس يا Log بسيار زياد ديتابيس كه با Shirink يا Rebuild كردن مشكلات فوق حل مي شود.


    hadironi سپاسگزاری کرده است.

  3. #3
    نام حقيقي: مهدی نادری

    عضو عادی
    تاریخ عضویت
    Apr 2013
    محل سکونت
    خراسان جنوبی
    نوشته
    303
    سپاسگزاری شده
    242
    سپاسگزاری کرده
    10
    دوستان من یه موردی دارم توی یرور هایی که روش SQL نصبه.رم سرور 10 گیگ هستش و این سرور 9.89 از رمش اشغاله.
    خیلی برام عجیبه.توی Resource Monitor که میرم میبینم کل برنامه ها نباید از 2 گیگ بیشتر بشن ولی این للکی رم رو اشغال نشون میده.
    بیشتر هم ایم نورد رو توی سرورهایی دیدم که روش Sql دارن.
    توی تنظیمات Sql یه جا دیدم که زده بود بیشترین رمی که اشغال بشه چقدر باشه.من از 10 گیگ اوردمش رو 5 گیگ ولی بازم تاثیری نداشت.
    اشغال حافظه سرور شما دلایل زیادی ممکن است داشته باشه و نمتوان همه رو حساب SQL Server گذاشت (SQL Server مایکروسافت یکی از بهترین RDBMS هاست و حافظه به بهترین شکل ممکن در آن مدیریت میشه)
    اگر SQL Server بار پردازشی زیادی نداره میتوان حافظه اختصاص یافته به اون رو کم کرد
    بررسی کنید که آیا این وضع در همان ابتدا با روشن کردن سرور شروع میشه و یا بعد از اجرای چند ساعته یک نرم افزار خاص
    در مورد نرم افزاهای کلاینت سرور مانند 90 درصد برنامه های حسابداری ایرانی مشکل برمیگرده به ضعف در برنامه نویسی و طراحی ضعیف دیتابیس حالا از هلو بگیر تا پارسیان و .... که من درچند سیستم حسابداری که پیاده کردم با ان موجه شدم و در نهایت کار خاصی هم نمتونید انجام بدین
    شما ابتدا روی سیستم با استفاده از Profiler عملیات کلی سیستم رو Log کنید.
    بعد از این کار ، دستوراتی که بیشترین I/O رو دارند و بیشترین زمان برای اجرا رو انجام میدهند رو بررسی کنید و Execution Plan اونو بررسی کنید.
    در این قسمت میتونید ببینید آیا از ایندکس مناسبی استفاده میکنه یا خیر که در صورت لزوم میتوان ایندکسهای مناسب رو روی اون ایجاد کرد


    ویرایش توسط MNaderi : 2013-06-12 در ساعت 01:40 PM
    Hakimi و hadironi سپاسگزاری کرده‌اند.

  4. #4
    نام حقيقي: محمد حکیمی

    Administrator شناسه تصویری Hakimi
    تاریخ عضویت
    Dec 2002
    محل سکونت
    تهران
    نوشته
    6,549
    سپاسگزاری شده
    6798
    سپاسگزاری کرده
    1035
    نوشته های وبلاگ
    4
    مصرف Memory توسط SQL Server به خودی خود نه تنها ایراد نیست، بلکه مزیت است. DBMS هرچه بهتر و بیشتر از Memory استفاده کند، به معنی آنست که اطلاعات را روی Memory قرار داده و در نتیجه سرعت دسترسی به اطلاعات بسیار بالاتر می‌رود. آن زمانی باید نگران شد که Memory آزاد داشته باشید و DBMS نتواند آن را به کار گیرد.

    ولی مشکلی که شما اشاره کردید، مشکل استفاده SQL Server از RAM نیست. مشکلی که شما دیده اید اینست که مجموع مصرف Memory همه Process های شما به 2GB است ولی کل Memory اشغال شده را 9GB نشان می‌دهد. درست است؟

    سوال: آیا سرورهای شما مجازی است و روی ESXi قرار دارند؟


    EVERAL و al1p0ur سپاسگزاری کرده‌اند.

  5. #5
    نام حقيقي: hadi esmaeili

    خواننده
    تاریخ عضویت
    May 2012
    محل سکونت
    tehran
    نوشته
    93
    سپاسگزاری شده
    10
    سپاسگزاری کرده
    56
    نقل قول نوشته اصلی توسط Hakimi نمایش پست ها
    مصرف Memory توسط SQL Server به خودی خود نه تنها ایراد نیست، بلکه مزیت است. DBMS هرچه بهتر و بیشتر از Memory استفاده کند، به معنی آنست که اطلاعات را روی Memory قرار داده و در نتیجه سرعت دسترسی به اطلاعات بسیار بالاتر می‌رود. آن زمانی باید نگران شد که Memory آزاد داشته باشید و DBMS نتواند آن را به کار گیرد.

    ولی مشکلی که شما اشاره کردید، مشکل استفاده SQL Server از RAM نیست. مشکلی که شما دیده اید اینست که مجموع مصرف Memory همه Process های شما به 2GB است ولی کل Memory اشغال شده را 9GB نشان می‌دهد. درست است؟

    سوال: آیا سرورهای شما مجازی است و روی ESXi قرار دارند؟
    بله دقیقا همینطوره.در Resource Monitor میزان رم اشغال شده برای کل برنامه ها کمتر از 3 یا 4 گیگ هست ولی کل رم اشغال شده 9.8 گیگ هست.
    بله این سرور روی ESXi هستش.
    با تشکر.



  6. #6
    نام حقيقي: محمد حکیمی

    Administrator شناسه تصویری Hakimi
    تاریخ عضویت
    Dec 2002
    محل سکونت
    تهران
    نوشته
    6,549
    سپاسگزاری شده
    6798
    سپاسگزاری کرده
    1035
    نوشته های وبلاگ
    4
    یکی از قابلیت‌های VMWare vSphere، مدیریت استفاده از Memory در قالب Memory Ballooning است. عملکرد آن به این صورت است که اگر سروری از Memory استفاده نکند، Memory را از سیستم عامل می‌گیرد و در اختیار Host قرار می‌دهد تا اگر دیگر سرورها نیاز داشتند بتوانند استفاده کنند.
    به همین علت است که شما این میزان Memory را به عنوان Memory آزاد نمی‌بینید.
    برای مشاهده دقیق میزان Memory آزاد شده توسط vSphere، می‌توانید از ابزار RAMMap استفاده کنید.
    در RAMMap میزان Memory آزاد شده توسط vSphere به عنوان Driver Locked نشان داده می‌شود.

    البته این شیوه عملکرد vSphere برای DBMS ها مضر است. اگر قرار است RAM کمتری به SQL Server داده شود، بهتر است از ابتدا این کار انجام شود تا DBMS خودش را برای استفاده از آن میزان Memory آماده کند. ولی زمانی که ابتدا Memory بیشتری در اختیار DBMS قرار می‌گیرد و بعد با Memory Ballooning از DBMS باز پس گرفته می‌شود، Performance و کارایی DBMS پایین می‌آید.

    برای همین بهتر است Memory Ballooning بر روی سرورهای‌ مجازی که سرویس دهنده اختصاصی Database هستند غیر فعال شود.

    (در خیلی موارد مشاهده کرده ام که عموم می‌گویند Database روی محیط مجازی سرعت پایین تری دارد و در نتیجه تجویز می‌کنند که باید به صورت مستقل و فیزیکی نصب شود و مجازی نباشد. ولی به این دقت نمی‌کنند که نصب و راه اندازی زیرساخت مجازی فقط نصب ساده ESXi نیست. شناخت کامل و تنظیم دقیق آن است که بهترین کارایی را می‌تواند به همراه داشته باشد. این قاعده در مورد همه سیستم‌های نرم افزاری و سخت افزاری صادق است.)


    th95، EVERAL، al1p0ur و 7 نفر دیگر سپاسگزاری کرده‌اند.

  7. #7
    CSW
    CSW آنلاین نیست.
    نام حقيقي: امیر

    عضو عادی شناسه تصویری CSW
    تاریخ عضویت
    Apr 2013
    محل سکونت
    مشهد
    نوشته
    108
    سپاسگزاری شده
    81
    سپاسگزاری کرده
    75
    بسیار سپاسگزارم آقای حکیمی !!!

    به اندازه یه دوره کامل مجازی سازی استفاده کردم ، واقعا عالی بود !!!


    Hakimi سپاسگزاری کرده است.

  8. #8
    نام حقيقي: hadi esmaeili

    خواننده
    تاریخ عضویت
    May 2012
    محل سکونت
    tehran
    نوشته
    93
    سپاسگزاری شده
    10
    سپاسگزاری کرده
    56
    نقل قول نوشته اصلی توسط Hakimi نمایش پست ها
    یکی از قابلیت‌های VMWare vSphere، مدیریت استفاده از Memory در قالب Memory Ballooning است. عملکرد آن به این صورت است که اگر سروری از Memory استفاده نکند، Memory را از سیستم عامل می‌گیرد و در اختیار Host قرار می‌دهد تا اگر دیگر سرورها نیاز داشتند بتوانند استفاده کنند.
    به همین علت است که شما این میزان Memory را به عنوان Memory آزاد نمی‌بینید.
    برای مشاهده دقیق میزان Memory آزاد شده توسط vSphere، می‌توانید از ابزار RAMMap استفاده کنید.
    در RAMMap میزان Memory آزاد شده توسط vSphere به عنوان Driver Locked نشان داده می‌شود.

    البته این شیوه عملکرد vSphere برای DBMS ها مضر است. اگر قرار است RAM کمتری به SQL Server داده شود، بهتر است از ابتدا این کار انجام شود تا DBMS خودش را برای استفاده از آن میزان Memory آماده کند. ولی زمانی که ابتدا Memory بیشتری در اختیار DBMS قرار می‌گیرد و بعد با Memory Ballooning از DBMS باز پس گرفته می‌شود، Performance و کارایی DBMS پایین می‌آید.

    برای همین بهتر است Memory Ballooning بر روی سرورهای‌ مجازی که سرویس دهنده اختصاصی Database هستند غیر فعال شود.

    (در خیلی موارد مشاهده کرده ام که عموم می‌گویند Database روی محیط مجازی سرعت پایین تری دارد و در نتیجه تجویز می‌کنند که باید به صورت مستقل و فیزیکی نصب شود و مجازی نباشد. ولی به این دقت نمی‌کنند که نصب و راه اندازی زیرساخت مجازی فقط نصب ساده ESXi نیست. شناخت کامل و تنظیم دقیق آن است که بهترین کارایی را می‌تواند به همراه داشته باشد. این قاعده در مورد همه سیستم‌های نرم افزاری و سخت افزاری صادق است.)
    خیلی ممنونم از راهنماییتون.
    فقط از کجا میتونم Memory Ballooning رو غیر فعال کنم؟
    تو اینترنت دنبالش گشتم ولی به جواب نرسیدم.



  9. #9
    نام حقيقي: Mohammad

    عضو ویژه شناسه تصویری th95
    تاریخ عضویت
    Sep 2008
    نوشته
    4,263
    سپاسگزاری شده
    5765
    سپاسگزاری کرده
    2674
    نوشته های وبلاگ
    20
    نقل قول نوشته اصلی توسط hadironi نمایش پست ها
    خیلی ممنونم از راهنماییتون.
    فقط از کجا میتونم Memory Ballooning رو غیر فعال کنم؟
    تو اینترنت دنبالش گشتم ولی به جواب نرسیدم.


    Disabling ballooning via the vSphere Client

    To set the maximum balloon size to zero:

    Using the vSphere Client, connect to the vCenter Server or the ESXi/ESX host where the virtual machine resides.
    Log into the ESXi/ESX host as a user with administrative rights.
    Shut down the virtual machine.
    Right-click the virtual machine listed on the Inventory panel and click Edit Settings.
    Click the Options tab, then under Advanced, click General.
    Click Configuration Parameters.
    Click Add row and add the parameter sched.mem.maxmemctl in the text box.
    Click on the row next to it and add 0 in the text box.
    Click OK to save changes.

    To re-enable the balloon driver in a virtual machine:

    SSH to the ESXi/ESX host.
    Change directory to the datastore where the virtual machine's configuration file resides.
    Back up the virtual machine's configuration file.
    Edit the virtual machine's configuration file (virtual_machine_name.vmx) and remove this entry:

    sched.mem.maxmemctl = "0"

    Save and close the file.
    Power on the virtual machine.

    Note: You cannot remove the entry via the Configuration Parameters UI once it has been added. You must edit the configuration file (.vmx) for the virtual machine to remove the entry.


    Disabling ballooning via the Windows registry

    To disable ballooning on the virtual machine:

    Note: This procedure modifies the Windows registry. Before making any registry modifications, ensure that you have a current and valid backup of the registry and the virtual machine. For more information on backing up and restoring the registry, see the Microsoft Knowledge Base article 136393.

    Log into the guest OS.
    Click Start > Run, type regedit, and press Enter. The Registry Editor window opens.
    Navigate to:

    \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servi ces\VMMEMCTL

    Change the Start key from 2 to 4.
    Save the setting and restart the guest OS.


    Disabling ballooning via VMware Tools uninstallation/reinstallation

    Uninstall VMware Tools from the guest OS.
    Reinstall VMware Tools using the Custom Settings option, and deselect the Memory Control Drivers.



    Hakimi و hadironi سپاسگزاری کرده‌اند.

کلمات کلیدی در جستجوها:

اختصاص رم به sql

اشغال حافظه در vmware

اشغال رم زیاد توسط sql

رم در esxi

مشکل پروسس زیاد sql

اختصاص حافظه به sql

مشکل sql server در esxi

تنظیمات sql server برای esxi

حافظه اختصاصي به sql server

تنظیم میزان رم در sql

rammap نرم افزار

مدیریت رم در sql server

اشغال ram توسط sql

استفاده از rammap

اشغال کردن رم توسط sql

چگونه رم بيشتري به sql اختصاص بديم

نحوه اختصاص رم به sql

مشكل پس از نصب sql vsphare

اشغال زیاد رم در sql

نحوه نصب فيزيکي رم به سرور esxi

کار rebuild کردن در sql server

تنطیمات یک پایگاه داده sqlدر کنار vcenter

مدیریت حافظه در sqlserver

تنظیم مموری esxi

میزان رم استفاده پروسسها در اسکیوال

برچسب برای این موضوع

مجوز های ارسال و ویرایش

  • شما نمی توانید موضوع جدید ارسال کنید
  • شما نمی توانید به پست ها پاسخ دهید
  • شما نمی توانید فایل پیوست ضمیمه کنید
  • شما نمی توانید پست های خود را ویرایش کنید
  •