یکی از ساده ترین راه ها برای پاسخگویی سرور شما و محافظت در برابر خطاهای خارج از حافظه در برنامه شما ، اضافه کردن فضای مبادله ای است. مبادله منطقه ای در یک درایو ذخیره سازی است که سیستم عامل می تواند به طور موقت داده هایی را که دیگر نمی تواند در حافظه نگه دارد ، ذخیره کند.
این به شما امکان افزایش میزان اطلاعاتی را که سرور شما می تواند در حافظه کاری خود نگه دارد ، با برخی از احتیاط ها به شما می دهد. خواندن و نوشتن به مبادله نسبت به استفاده از حافظه کندتر است ، اما می تواند یک شبکه ایمنی مناسب را برای زمانی که سرور شما در حافظه کم است فراهم کند.
بدون مبادله ، سرور که از حافظه خارج می شود ممکن است شروع به کشتن برنامه ها برای آزاد کردن حافظه یا حتی خرابی کند. این می تواند باعث شود شما داده های ذخیره نشده را از دست دهید یا خرابی را تجربه کنید. برای اطمینان از دسترسی قابل اعتماد به داده ها ، برخی از برنامه ها برای عملکرد نیاز به مبادله دارند.
در این راهنما ، نحوه ایجاد و فعال کردن یک فایل مبادله را در سرور Centos 7 پوشش خواهیم داد.
اگرچه تعویض به طور کلی برای سیستمهایی که از هاردهای سنتی ریسندگی استفاده می کنند ، توصیه می شود ، استفاده از مبادله با SSD می تواند با گذشت زمان باعث ایجاد مشکل در تخریب سخت افزاری شود. با توجه به این توجه ، ما توصیه نمی کنیم که مبادله DigitalOcean یا هر ارائه دهنده دیگری را که از ذخیره سازی SSD استفاده می کند ، فعال کنیم. انجام این کار می تواند بر قابلیت اطمینان سخت افزار اساسی برای شما و همسایگان تأثیر بگذارد.
اگر نیاز به بهبود عملکرد سرور خود دارید ، توصیه می کنیم قطرات خود را ارتقا دهید. این امر به طور کلی به نتایج بهتری منجر می شود و احتمال کمک به مشکلات سخت افزاری را که می تواند بر خدمات شما تأثیر بگذارد ، کاهش می دهد.
پیش نیازها
قبل از شروع این راهنما ، چند مرحله وجود دارد که ابتدا باید تکمیل شوند.
به یک سرور CentOS 7 که با یک کاربر غیر ریشه ای که دارای امتیازات SUDO است ، نصب و پیکربندی شده است. اگر هنوز این کار را نکرده اید ، می توانید مراحل 1-4 را در راهنمای تنظیم اولیه سرور CentOS 7 برای ایجاد این حساب اجرا کنید.
پس از داشتن کاربر غیر ریشه خود ، می توانید از آن برای SSH در سرور CentOS خود استفاده کرده و با نصب پرونده مبادله خود ادامه دهید.
سیستم را برای اطلاعات مبادله بررسی کنید
قبل از شروع ، باید نگاهی به ذخیره سازی سرور خود بیندازیم تا ببینیم آیا فضای مبادله ای در دسترس داریم یا خیر. در حالی که ما می توانیم چندین پرونده مبادله یا پارتیشن مبادله داشته باشیم ، به طور کلی باید کافی باشد.
ما می توانیم ببینیم که آیا این سیستم با استفاده از Swapon ، یک ابزار مبادله ای با هدف کلی ، دارای تعویض پیکربندی شده است. با پرچ م-s ، Swapon خلاصه ای از استفاده از مبادله و در دسترس بودن در دستگاه ذخیره سازی ما را نشان می دهد:
Swapo n-s
اگر هیچ چیز توسط دستور بازگردانده نشود ، خلاصه آن خالی بود و هیچ پرونده مبادله ای وجود ندارد.
راه دیگر برای بررسی فضای مبادله با ابزار رایگان است که استفاده از حافظه کلی سیستم را به ما نشان می دهد. ما می توانیم حافظه فعلی و استفاده از مبادله (در مگابایت) را با تایپ مشاهده کنیم:
رایگا ن-M
کل بافرهای مشترک رایگان استفاده شده ذخیره شده: 3953 315 3637 8 11 107 -/+ بافر/حافظه پنهان: 196 3756مبادله: 00 4095
همانطور که مشاهده می کنید ، کل فضای مبادله ما در سیستم 0 است. این مطابق آنچه با Swapon دیدیم مطابقت دارد.
فضای ذخیره سازی موجود را بررسی کنید
روش معمولی تخصیص فضا برای مبادله استفاده از یک پارتیشن جداگانه است که به کار اختصاص داده شده است. با این حال ، تغییر طرح پارتیشن همیشه به دلیل محدودیت سخت افزار یا نرم افزار امکان پذیر نیست. خوشبختانه ، ما به راحتی می توانیم یک فایل مبادله ای را که در یک پارتیشن موجود ساکن است ، ایجاد کنیم.
قبل از انجام این کار ، باید از استفاده فعلی درایو خود آگاه باشیم. ما می توانیم با تایپ این اطلاعات را بدست آوریم:
d f-h
اندازه سیستم فایل استفاده شده از Avaost استفاده ٪ نصب شده روی/dev /vda1 59g 1. 5g 55g 3 ٪ /devtmpfs 2. 0g 0 2. 0g 0 ٪ /dev tmpfs 2. 0g 0 2. 0g 0 ٪ /dev /shm tmpfs 2. 0g 8. 3m 2. 0g 1 ٪ /run tmpfs 2. 0g 0 2. 0g 0 ٪ /sys /fs /cgroup
توجه: پرچ م-h به سادگی به DH می گوید که اطلاعات را در قالب خواندن دوستانه انسان به وجود آورد. به عنوان مثال ، به جای خروج از تعداد خام بلوک های حافظه در یک پارتیشن ، D F-H استفاده از فضا و در دسترس بودن در M (برای مگابایت) یا G (برای گیگابایت) را به ما می گوید.
همانطور که در خط اول مشاهده می کنید ، پارتیشن ذخیره سازی ما 59 گیگ موجود است ، بنابراین ما فضای کمی برای کار با آن داریم. به خاطر داشته باشید که این در یک نمونه VPS با اندازه متوسط و متوسط است ، بنابراین ممکن است استفاده واقعی شما بسیار متفاوت باشد.
اگرچه نظرات زیادی در مورد اندازه مناسب یک فضای مبادله وجود دارد ، اما واقعاً به نیازهای کاربردی و ترجیحات شخصی شما بستگی دارد. به طور کلی ، مقدار برابر یا دو برابر مقدار حافظه در سیستم شما نقطه شروع خوبی است.
از آنجا که سیستم من دارای 4 گیگ حافظه است و دو برابر می شود که یک قطعه بزرگتر از فضای ذخیره سازی من از آنچه که مایل به عضویت در آن هستم می گیرد ، من یک فضای مبادله ای از 4 گیگابایت ایجاد می کنم تا با حافظه سیستم خود مطابقت داشته باشم.
یک فایل مبادله ایجاد کنید
اکنون که فضای ذخیره سازی موجود خود را می شناسیم ، می توانیم در مورد ایجاد یک فایل مبادله در سیستم فایل خود اقدام کنیم. ما پرونده ای به نام SwapFile را در فهرست root ( /) خود ایجاد خواهیم کرد ، اگرچه در صورت تمایل می توانید پرونده را چیز دیگری نامگذاری کنید. پرونده باید مقدار فضایی را که می خواهیم برای پرونده مبادله خود اختصاص دهیم ، اختصاص دهد و باید در یک بلوک همبستگی ایجاد شود.
بهترین راه برای انجام این کار استفاده از ابزار DD است. این دستور یک فایل 4 گیگ ایجاد می کند:
sudo dd if =/dev/Zero of =/swapfile count = 4096 bs = 1mib
پس از وارد کردن رمز ورود خود برای مجاز بودن امتیازات سودو ، پرونده مبادله ایجاد می شود. این می تواند چند لحظه طول بکشد ، سپس سریع به شما بازگردانده می شود. ما می توانیم تأیید کنیم که مقدار صحیح فضای برای تعویض با استفاده از LS محفوظ است:
l s-lh/swapfile
-RW-R-R-- 1 ریشه ریشه4. 0 گرم30 اکتبر 11:00/swapfile
همانطور که مشاهده می کنید ، پرونده مبادله ما با مقدار صحیح فضای کنار گذاشته شده است.
یک فایل مبادله را فعال کنید
در حال حاضر ، پرونده ما ایجاد شده است ، اما سیستم ما نمی داند که این قرار است برای مبادله استفاده شود. ما باید به سیستم خود بگوییم که این پرونده را به عنوان مبادله قالب بندی کرده و سپس آن را فعال کنیم.
قبل از انجام این کار ، باید مجوزها را در پرونده مبادله خود تنظیم کنیم تا به غیر از حساب root توسط کسی قابل خواندن نباشد. اجازه دادن به سایر کاربران برای خواندن یا نوشتن این پرونده ، یک خطر امنیتی عظیم خواهد بود. ما می توانیم مجوزها را با chmod قفل کنیم:
sudo chmod 600/swapfile
این فقط مجوزهای خواندن و نوشتن را فقط به حساب root محدود می کند. ما می توانیم تأیید کنیم که پرونده مبادله با استفاده از L S-LH مجوزهای صحیح دارد:
l s-lh/swapfile
-rw ------- 1 ریشه ریشه4. 0 گرم30 اکتبر 11:00/swapfile
اکنون که پرونده مبادله ما ایمن تر است ، می توانیم به سیستم خود بگوییم که با تایپ کردن ، فضای مبادله ای را برای استفاده تنظیم کند:
SUDO MKSWAP/swapfile
تنظیم نسخه SwapsPace نسخه 1 ، اندازه =4194300KIB NO LABEL ، UUID = B99230BB-21AF-47BC-8C37-DE41129C39BF
پرونده مبادله ما اکنون آماده استفاده به عنوان یک فضای مبادله است. ما می توانیم با تایپ استفاده از آن را شروع کنیم:
سوپون سودو/swapfile
برای تأیید موفقیت آمیز این روش ، می توانیم بررسی کنیم که آیا سیستم ما اکنون فضای مبادله را گزارش می کند:
Swapo n-s
اندازه نام پرونده از اولویت استفاده شده است/swapfileفایل4194300 0-1
این خروجی تأیید می کند که ما یک پرونده مبادله جدید داریم. ما می توانیم دوباره از ابزار رایگان استفاده کنیم تا یافته های خود را تأیید کنیم:
رایگا ن-M
کل بافرهای مشترک رایگان استفاده شده ذخیره شده: 3953 315 3637 8 11 107 -/+ بافر/حافظه پنهان: 196 3756مبادله: 40950 4095
مبادله ما با موفقیت تنظیم شده است و سیستم عامل ما در صورت لزوم شروع به استفاده از آن می کند.
پرونده مبادله را دائمی کنید
پرونده مبادله ما در حال حاضر فعال می شود ، اما وقتی ما دوباره راه اندازی می شویم ، سرور به طور خودکار پرونده را برای استفاده فعال نمی کند. ما می توانیم با اصلاح پرونده FSTAB ، که یک جدول است که سیستم های فایل و پارتیشن ها را مدیریت می کند ، آن را تغییر دهیم.
پرونده را با امتیازات sudo در ویرایشگر متن خود ویرایش کنید:
sudo nano /etc /fstab
در پایین پرونده ، باید خطی اضافه کنید که به سیستم عامل بگوید تا به طور خودکار از پرونده مبادله ای که ایجاد کرده اید استفاده کند:
/swapfileمبادله SWAP SW 0 0
پس از اتمام اضافه کردن خط ، می توانید پرونده را ذخیره و بسته کنید. سرور این پرونده را در هر بوتوپ بررسی می کند ، بنابراین پرونده مبادله از این پس برای استفاده آماده خواهد بود.
تنظیمات مبادله خود را Tweak (اختیاری)
چند گزینه وجود دارد که می توانید پیکربندی کنید که در هنگام برخورد با SWAP بر عملکرد سیستم شما تأثیر خواهد گذاشت. این تنظیمات در بیشتر موارد اختیاری است و تغییراتی که ایجاد می کنید به نیازهای برنامه و ترجیح شخصی شما بستگی دارد.
تعویض
پارامتر swappiness تعیین می کند که چند بار سیستم شما داده ها را از حافظه به فضای مبادله تعویض می کند. این یک مقدار بین 0 تا 100 است که نشان دهنده درصد استفاده از حافظه است که باعث استفاده از مبادله می شود.
با مقادیر نزدیک به صفر ، سیستم داده ها را به درایو مبادله نمی کند مگر اینکه کاملاً لازم باشد. به یاد داشته باشید ، تعامل با پرونده مبادله "گران" است زیرا آنها بسیار کندتر از تعامل با حافظه هستند و این تفاوت در سرعت خواندن و نوشتن می تواند باعث کاهش چشمگیر عملکرد یک برنامه شود. گفتن به سیستم برای تکیه بر مبادله به همان اندازه که به طور کلی سیستم شما را سریعتر می کند.
مقادیری که به 100 نزدیکتر هستند ، سعی می کنند داده های بیشتری را در تلاش برای آزاد نگه داشتن حافظه بیشتر قرار دهند. بسته به مشخصات حافظه برنامه های شما یا آنچه از سرور خود استفاده می کنید ، این ممکن است در بعضی موارد انتخاب بهتری باشد.
ما می توانیم با خواندن پرونده پیکربندی swappiness مقدار تغییر فعلی را مشاهده کنیم:
CAT/PROC/SYS/VM/تعویض
Centos 7 به طور پیش فرض به یک تنظیم تعویض 30 ، که برای اکثر دسک تاپ ها و سرورهای محلی یک میانه منصفانه است. برای یک سیستم VPS ، ما احتمالاً می خواهیم آن را به 0 نزدیک کنیم.
ما می توانیم با استفاده از دستور SYSCTL ، تعویض را روی یک مقدار متفاوت تنظیم کنیم. به عنوان مثال ، برای تنظیم تعویض 10 ، می توانیم تایپ کنیم:
sudo sysctl vm. swappiness =10
vm. swappiness =10
این تنظیم تا راه اندازی مجدد بعدی ادامه خواهد یافت. برای ادامه تنظیمات بین راه اندازی مجدد ، می توانیم خط خروجی را به پرونده پیکربندی SYSCTL خود اضافه کنیم:
sudo nano /etc/sysctl. conf
تنظیمات تعویض خود را به پایین پرونده اضافه کنید:
vm. swappiness =10
پس از اتمام اضافه کردن خط ، می توانید پرونده را ذخیره و بسته کنید. اکنون سرور به طور خودکار تعویض را به مقداری که در هر بوتپ اعلام کرده اید تنظیم می کند.
فشار
مقدار مرتبط دیگری که ممکن است بخواهید اصلاح کنید VFS_CACHE_PRESSURE است. این تنظیم بر ذخیره ورودی های ابرداده ویژه سیستم فایل تأثیر می گذارد. دائماً خواندن و طراوت این اطلاعات به طور کلی بسیار پرهزینه است ، بنابراین ذخیره کردن آن در حافظه نهان طولانی تر برای عملکرد سیستم شما بسیار عالی است.
با پرس و جو در سیستم فایل Proc می توانید مقدار فعلی این فشار حافظه نهان را مشاهده کنید:
گربه/proc/sys/vm/vfs_cache_pressure
همانطور که در حال حاضر پیکربندی شده است ، سیستم ما اطلاعات inode را خیلی سریع از حافظه نهان حذف می کند. ما می توانیم این کار را با استفاده از SYSCTL به یک محیط محافظه کارانه تر ، مانند 50 ، تنظیم کنیم:
sudo sysctl vm. vfs_cache_pressure =50
vm. vfs_cache_pressure =50
باز هم ، این فقط برای جلسه فعلی ما معتبر است. ما می توانیم با افزودن آن به پرونده پیکربندی خود ، مانند آنچه که با تنظیمات تعویض خود انجام دادیم ، آن را تغییر دهیم:
sudo nano /etc/sysctl. conf
در پایین ، خطی را که مقدار جدید شما را مشخص می کند اضافه کنید:
vm. vfs_cache_pressure =50
پس از اتمام اضافه کردن خط ، می توانید پرونده را ذخیره و بسته کنید. اکنون سرور به طور خودکار فشار حافظه نهان را به مقداری که در هر بوتپ اعلام کرده اید تنظیم می کند.
نتیجه
با دنبال کردن مراحل موجود در این راهنما ، از نظر استفاده از حافظه ، اتاق تنفس خود را به سرور خود داده اید. فضای مبادله برای جلوگیری از برخی از مشکلات رایج فوق العاده مفید است.
اگر در حال خطاهای OOM (خارج از حافظه) هستید ، یا می فهمید که سیستم شما قادر به استفاده از برنامه های مورد نیاز شما نیست ، بهترین راه حل این است که تنظیمات برنامه خود را بهینه کنید یا سرور خود را به روز کنید. با این حال ، پیکربندی فضای مبادله می تواند انعطاف پذیری بیشتری به شما بدهد و می تواند به شما در خرید زمان بر روی یک سرور کمتر قدرتمند کمک کند.
با تشکر از یادگیری با جامعه دیجیتال. پیشنهادات ما را برای پایگاه داده های محاسباتی ، ذخیره سازی ، شبکه سازی و مدیریت شده بررسی کنید.
می خواهید بیشتر بدانید؟به جامعه دیجیتالی بپیوندید!
به جامعه دیجیتالی ما با بیش از یک میلیون توسعه دهنده به صورت رایگان بپیوندید! در بخش سوالات و پاسخ های ما به شما کمک کنید و دانش خود را به اشتراک بگذارید ، آموزش ها و ابزارهایی را پیدا کنید که به شما در رشد به عنوان یک توسعه دهنده و مقیاس پروژه یا تجارت خود کمک می کند و در موضوعات مورد علاقه مشترک می شوید.
گزینه های باینری...
ما را در سایت گزینه های باینری دنبال می کنید
برچسب : نویسنده : سحر زکریا بازدید : 33 تاريخ : سه شنبه 3 مرداد 1402 ساعت: 13:11