وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

رم VPS را افزایش داده‌ام؛ چرا لینوکس هنوز مقدار قبلی را نشان می‌دهد؟

روش تشخیص اعمال‌نشدن افزایش رم سرور مجازی، بررسی حافظه سیستم‌عامل، hot-add و بلوک‌های offline را با مثال بخوانید.

انتشار:
توسط تیم فنی نت‌آرام
۹ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله رم VPS را افزایش داده‌ام؛ چرا لینوکس هنوز مقدار قبلی را نشان می‌دهد؟ در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
در پنل سرور مجازی، رم را از ۴ به ۸ گیگابایت افزایش داده‌اید، اما داخل لینوکس هنوز حدود ۴ گیگابایت می‌بینید. افزایش عدد در پنل و قابل استفاده شدن حافظه در سیستم‌عامل دو مرحله متفاوت‌اند. ممکن است تغییر در ماشین مجازی اعمال نشده باشد، برای آن روش ارتقا خاموش و روشن‌کردن لازم باشد، یا حافظه جدید به سیستم‌عامل معرفی شده ولی هنوز آنلاین نشده باشد.
اینجا مسیر تشخیص را از ساده‌ترین حالت شروع می‌کنیم. مثال ۴ و ۸ گیگابایت فرضی است. دستورها برای مدیر مجاز Linux VPS هستند؛ اگر سرویس شما مدیریت‌شده است یا به پنل مجازی‌سازی دسترسی ندارید، بعضی مرحله‌ها را باید از ارائه‌دهنده بخواهید. افزایش رم با افزایش دیسک و پارتیشن فرق دارد؛ برای رم به ابزار تغییر پارتیشن نیازی ندارید.

قبل از هر تغییر، سه عدد را یادداشت کنید

۱. مقدار قبلی رم که پیش از ارتقا در سیستم‌عامل می‌دیدید. ۲. مقدار درخواستی جدید و وضعیت سفارش یا عملیات ارتقا در پنل سرویس. ۳. مقدار فعلی داخل ماشین و زمانی که آن را مشاهده کرده‌اید.
اگر چند VPS دارید، نام، شناسه و IP همان ماشینی را که ارتقا داده‌اید با پنل تطبیق دهید. اتصال به سرور اشتباه یکی از ساده‌ترین دلایل اختلاف است. همچنین مشخص کنید ماشین پس از تغییر واقعاً خاموش و روشن شده یا در زمان روشن بودن ارتقا داده شده است. این دو مسیر نتیجه یکسانی ندارند.

مرحله اول: حافظه قابل استفاده لینوکس را ببینید

با SSH یا کنسول مجاز وارد همان VPS شوید و در ترمینال اجرا کنید:
کد / دستورfree -h
این فرمان اطلاعات حافظه را در واحد خوانا نشان می‌دهد. در ردیف Mem به ستون total نگاه کنید. برای مثال، اگر قرار بوده مقدار از ۴ به ۸ گیگابایت برسد و total هنوز نزدیک مقدار قبلی است، سیستم‌عامل هنوز همه مقدار مورد انتظار را به‌صورت حافظه قابل استفاده نشان نمی‌دهد. مقداری اختلاف کوچک به دلیل واحد نمایش یا حافظه رزروشده می‌تواند طبیعی باشد؛ مقدار دقیق را با معماری و تنظیمات سرویس مقایسه کنید.
این دو عدد را اشتباه نگیرید: total مقدار قابل استفاده گزارش‌شده به سیستم است؛ available تخمینی از حافظه موجود برای کارهای جدید است و با بار برنامه‌ها تغییر می‌کند. کم بودن available به خودی خود نشان نمی‌دهد ارتقا اعمال نشده است. ردیف Swap هم حافظه اصلی RAM نیست؛ بزرگ‌شدن آن، افزایش رم فیزیکی یا مجازی محسوب نمی‌شود.
برای دیدن مقدار ثبت‌شده در اطلاعات هسته، می‌توانید این دستور فقط‌خواندنی را هم اجرا کنید:
کد / دستورgrep '^MemTotal:' /proc/meminfo
عدد خروجی معمولاً با واحد kB گزارش می‌شود و دقیقاً برابر عدد تبلیغاتی گیگابایت در پنل نیست. این خروجی و free هر دو به اطلاعات سیستم‌عامل مربوط‌اند؛ دو منبع مستقل از تنظیم ماشین مجازی محسوب نمی‌شوند.

مرحله دوم: مطمئن شوید تغییر در خود ماشین اعمال شده است

در پنل سرویس یا مجازی‌سازی، ماشین را با شناسه و IP تأیید کنید و تنظیم حافظه فعلی آن را ببینید. پیام «سفارش ثبت شد» یا «پرداخت موفق» لزوماً به این معنی نیست که تنظیم ماشین نیز تغییر کرده است. وضعیت عملیات و عددی را که واقعاً برای همان VM نمایش داده می‌شود بررسی کنید.
اگر به پنل مجازی‌سازی دسترسی دارید، گزارش رخداد یا نتیجه عملیات تغییر حافظه را ببینید. اگر تغییر خطا داده، علت همان پیام را با ارائه‌دهنده بررسی کنید. اگر مشتری فقط ناحیه کاربری سرویس را می‌بیند، از پشتیبانی بخواهد مقدار تنظیم‌شده برای همان VM، موفقیت عملیات و نیاز به خاموش و روشن‌شدن را اعلام کند. رمز سرور یا کلید خصوصی را در درخواست نفرستید.
اگر تنظیم ماشین هنوز مقدار قبلی است: نخست باید ارتقا از سمت ارائه‌دهنده یا مدیر مجازی‌سازی درست اعمال شود. دستکاری تنظیمات حافظه داخل لینوکس نمی‌تواند مقداری را که به VM اختصاص داده نشده بسازد.
اگر پنل مقدار جدید را نشان می‌دهد اما لینوکس نه: نوع اعمال تغییر را مشخص کنید. بعضی محیط‌ها فقط پس از خاموش و روشن‌شدن VM حافظه جدید را به مهمان معرفی می‌کنند. در بعضی محیط‌ها افزایش در زمان روشن‌بودن با قابلیت hot-add و پشتیبانی نسخه مجازی‌ساز و سیستم‌عامل ممکن است. صرف اینکه یک گزینه در پنل دیده می‌شود، موفقیت hot-add برای همین ماشین را ثابت نمی‌کند.

مرحله سوم: آیا راه‌اندازی دوباره لازم است؟

از ارائه‌دهنده یا راهنمای همان پلتفرم بپرسید آیا ارتقا برای این ماشین به توقف یا خاموش و روشن‌شدن نیاز دارد. Reboot داخل سیستم‌عامل، خاموش و روشن‌کردن ماشین از پنل و ریست سخت سه کار متفاوت‌اند. اینکه کدام‌یک برای اعمال تغییر لازم است به روش مجازی‌سازی و عملیات انجام‌شده بستگی دارد؛ قبل از انجام، روش دقیق را مشخص کنید.
اگر قرار است خاموشی انجام شود، ابتدا با مسئول سایت زمان کم‌ترافیک تعیین کنید، از پشتیبان قابل بازیابی مطمئن شوید و سلامت بازگشت پایگاه داده و برنامه‌ها را در نظر بگیرید. به کاربران متصل اطلاع‌رسانی را طبق فرآیند کسب‌وکار انجام دهید. ریست سخت یا قطع ناگهانی برق مجازی را صرفاً برای امتحان انتخاب نکنید؛ می‌تواند کارهای در حال نوشتن را قطع کند.
پس از روش تأییدشده و روشن‌شدن ماشین، دوباره به همان سرور متصل شوید و free -h را اجرا کنید. اگر مقدار total به محدوده مورد انتظار رسیده، سرویس‌های سایت و برنامه را نیز آزمایش کنید. اگر هنوز مقدار قبلی است، نتیجه و زمان دقیق را برای ارائه‌دهنده بفرستید تا تنظیم واقعی ماشین و رخدادهای تغییر را بررسی کند.

اگر ارتقا به‌صورت hot-add انجام شده و لینوکس هنوز مقدار جدید را ندارد

این بخش برای زمانی است که مدیر پلتفرم تأیید کرده حافظه واقعاً به ماشین در حال اجرا اضافه شده و سیستم‌عامل و نسخه مجازی‌ساز این روش را پشتیبانی می‌کنند. در برخی نسخه‌های لینوکس، بلوک حافظه جدید شناسایی می‌شود اما در وضعیت offline می‌ماند. وجود یک بلوک offline به‌تنهایی ثابت نمی‌کند همان حافظه تازه است یا باید بدون بررسی فعال شود؛ سیستم ممکن است به دلایل معماری بلوک‌های دیگری نیز داشته باشد.
ابتدا در ترمینال سرور، اگر ابزار موجود است، فهرست را ببینید:
کد / دستورlsmem --all
خروجی محدوده‌ها، اندازه‌ها و وضعیت حافظه را نشان می‌دهد. قالب ستون‌ها و پشتیبانی گزینه‌ها به نسخه ابزار بستگی دارد. اگر دستور وجود ندارد یا گزینه را نمی‌شناسد، روی سرور فعال بی‌درنگ بسته‌ای نصب نکنید؛ روش مشاهده مناسب توزیع را از مدیر بپرسید.
برای مشاهده فقط‌خواندنی وضعیت بلوک‌ها، در بسیاری از سیستم‌ها می‌توانید اجرا کنید:
کد / دستورgrep -H . /sys/devices/system/memory/memory*/state
این فرمان مسیر و وضعیت فایل‌های موجود را چاپ می‌کند؛ نمونه فرضی:
کد / دستور/sys/devices/system/memory/memory41/state:online /sys/devices/system/memory/memory42/state:offline
در این مثال فقط می‌فهمیم بلوک ۴۱ آنلاین و بلوک ۴۲ آفلاین گزارش شده است. شماره memory42 را برای سرور خودتان کپی نکنید. اگر خروجی خطا داد، مسیرها یا مجوزهای همین سیستم را بررسی کنید؛ نبود چنین فایلی لزوماً به معنی خرابی رم نیست.

فعال‌کردن یک بلوک مشخص، فقط پس از شناسایی آن

اگر مدیر سرور و ارائه‌دهنده تأیید کرده‌اند که یک بلوک offline مشخص متعلق به حافظه تازه اضافه‌شده است و آنلاین‌کردن آن برای همین سیستم مناسب است، می‌توان از رابط مستند هسته استفاده کرد. این کار تغییر عملیاتی است؛ قبل از آن وضعیت فعلی، شماره بلوک و برنامه بازگشت را ثبت کنید. همه بلوک‌های offline را به‌صورت دسته‌ای فعال نکنید.
برای نمونه فرضی بلوک memory42، پس از جایگزین‌کردن شماره تأییدشده و بررسی دوباره مسیر، فرمان زیر را مدیر مجاز اجرا می‌کند:
کد / دستورprintf 'online\n' | sudo tee /sys/devices/system/memory/memory42/state
printf مقدار درخواستی را می‌سازد و sudo tee آن را با دسترسی مدیریتی در فایل وضعیت همان بلوک می‌نویسد. اگر جلسه واقعاً root است، پیشوند sudo لازم نیست. در صورت موفقیت معمولاً online چاپ می‌شود؛ اگر پیام خطا می‌بینید، آن را ثبت کنید و با تغییر پشت‌سرهم گزینه‌های دیگر یا آفلاین‌کردن حافظه فعال تلاش نکنید.
حالا فقط وضعیت همان بلوک را بخوانید:
کد / دستورcat /sys/devices/system/memory/memory42/state
اگر online دیدید، free -h را دوباره اجرا کنید و مقدار total را با قبل مقایسه کنید. اندازه هر بلوک ممکن است فقط بخشی از افزایش موردنظر باشد؛ آنلاین‌شدن یک بلوک لزوماً رسیدن به کل ظرفیت جدید را ثابت نمی‌کند. شناسایی سایر بلوک‌ها نیز باید با همان دقت انجام شود. اگر این مسیر برای سیستم شما واضح نیست، به‌جای حدس‌زدن، خروجی مشاهده را برای مدیر سرور بفرستید.
تنظیم آنلاین‌شدن خودکار حافظه، سیاست ناحیه حافظه و بارگذاری ماژول‌ها به توزیع، هسته و مجازی‌ساز وابسته است. آن‌ها را برای رفع فوری یک مشکل بدون مطالعه راهنمای نسخه و آزمون تغییر ندهید. برخی سرویس‌ها یا سیستم‌های مهمان ممکن است hot-add را پشتیبانی نکنند و به روش خاموش و روشن‌شدن برنامه‌ریزی‌شده نیاز داشته باشند.

اگر لینوکس ظرفیت جدید را می‌بیند اما برنامه هنوز از حد قبلی استفاده می‌کند

ابتدا free -h را در خود ماشین اجرا کنید، نه فقط داخل یک کانتینر. ممکن است سیستم‌عامل مهمان ۸ گیگابایت ببیند اما برنامه در کانتینر یا سرویس دارای محدودیت جداگانه باشد. در این حالت مسئله الزاماً عدم اعمال رم به VM نیست؛ محدودیت کانتینر، سرویس یا تنظیم اختصاص حافظه برنامه را با مدیر همان محیط بررسی کنید.
اگر برنامه تنظیم سقف حافظه دارد، افزایش RAM ماشین به‌تنهایی آن سقف را تغییر نمی‌دهد. پیش از اصلاح تنظیم برنامه، مصرف واقعی، تعداد برنامه‌های هم‌زمان و حافظه لازم برای سیستم‌عامل را در نظر بگیرید. اختصاص تمام RAM به یک برنامه می‌تواند سرویس‌های دیگر را با کمبود روبه‌رو کند.

کنترل نهایی و اطلاعات لازم برای پشتیبانی

نتیجه را در سه سطح ثبت کنید: مقدار تنظیم‌شده VM در پنل، total سیستم‌عامل بعد از روش اعمال، و عملکرد برنامه‌ای که برای آن ارتقا داده‌اید. سایت یا سرویس اصلی را با یک درخواست واقعی و امن آزمایش کنید؛ افزایش عدد RAM به‌تنهایی تضمین رفع کندی نیست.
اگر اختلاف ادامه دارد، شناسه سرور، مقدار قبل و بعد، زمان ارتقا، روش انجام‌شده، نتیجه free -h و در صورت ارتباط وضعیت بلوک‌های تأییدشده را برای پشتیبانی بفرستید. اطلاعات ورود و داده مشتریان را در گزارش قرار ندهید.
برای بررسی امکانات ارتقا و منابع، صفحه سرور مجازی ایران نت‌آرام را ببینید. شرایط اعمال تغییر منابع و نیاز به خاموشی را پیش از ارتقا برای سرویس خودتان بپرسید.

منابع فنی

اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام