اگر Raspberry Pi شما قفلهای منظمی را تجربه میکند، یاد بگیرید که چگونه حافظه مجازی را با یک SSD یدکی پیکربندی کنید.
Raspberry Pi مقدار RAM محدودی دارد و از آنجایی که یک کامپیوتر تک بردی است نمی توان مقدار بیشتری رم اضافه کرد. Pi 3 تنها یک گیگابایت رم دارد. Pi 4 بسته به مدل دارای حداکثر 8 گیگابایت رم است. برنامه های نرم افزاری گاهی اوقات به حافظه بیشتری نیاز دارند. بیشتر اوقات این نیاز به حافظه یک افزایش مختصر است. هنگامی که این اتفاق می افتد، Raspberry Pi به دلیل حافظه محدود یا “یخ زده” یا “خراش” می شود. خرابی همچنین ممکن است منجر به خراب شدن کارت SD و در نتیجه از دست رفتن اطلاعات شود.
برای جلوگیری از احتمال خرابی، می توان حافظه مجازی را به شکل swap روی Pi پیکربندی کرد. مقدار مناسبی از آن باید در دستگاه صحیح اضافه شود تا بهترین نتیجه را از آن ببرید. کل فرآیند به طور سیستماتیک با دستورالعمل های سیستم عامل های مختلف توضیح داده شده است.
درک نحوه عملکرد فرآیند حافظه
RAM حافظه فیزیکی است. در Pi 4، در کنار پردازنده قرار دارد. در Pi 3، RAM در سمت پایین برد مدار چاپی قرار گرفته است. برخلاف مادربردهای معمولی، رم در Raspberry Pi به برد لحیم شده است که امکان افزایش ظرفیت آن را محدود می کند.
هنگامی که یک نرم افزار اجرا می شود، از بخشی از RAM برای عملکرد خود استفاده می کند. مرورگر را به عنوان مثال در نظر بگیرید. هنگامی که یک صفحه وب در یک برگه بارگذاری می شود، داده های صفحه را به همراه حافظه مورد نیاز برای اجرای برنامه مرورگر در RAM ذخیره می کند. وقتی برگه های بیشتری بارگذاری می شود، رم به همان اندازه پر می شود. بدون حافظه مجازی، در برخی مواقع ظرفیت RAM تمام می شود و تب های جدید به هیچ وجه بارگذاری نمی شوند. مرور برگههای موجود نیز به میزان قابل توجهی کند میشود زیرا حافظه رایگانی برای عملیات اصلی وجود ندارد. در این مرحله، Pi دیگر پاسخ نمی دهد و تنها راه برای بازگرداندن آن، چرخه برق (خاموش و روشن) است.
این خاموش شدن تصادفی ممکن است مشکلات جدی ایجاد کند، به خصوص زمانی که سیستم عامل روی کارت SD باشد. کارت ممکن است در حالت “فقط خواندنی” قفل شود یا در بدترین حالت، به طور کلی خراب شود. این زمانی است که از دست دادن کل داده ها رخ می دهد.
تأثیر وضعیت “خارج از حافظه (OOM)” را می توان با پیکربندی swap برای استفاده به عنوان حافظه مجازی به حداقل رساند. Swap را می توان در قالب یک فایل یا یک پارتیشن روی دیسک تنظیم کرد و به عنوان پسوند RAM عمل می کند. زمانی که حافظه رم موجود تمام شد، دادههایی که به ندرت استفاده میشوند در فرآیندی به نام تعویض منتقل میشوند. در مورد مثال مرورگر، این داده ها از یک برگه بارگذاری شده است که کمترین استفاده را دارد. وقتی برگه دوباره فعال شد، این داده ها برای نمایش صفحه وب به RAM برمی گردند.
Swap ثبات را برای عملیات فشرده حافظه به ارمغان می آورد. اگر در مصرف حافظه جهش مختصری وجود داشته باشد، تعویض به جذب اسپایک و حفظ عملکرد سیستم به جای اینکه در حالت انجماد کامل باشد، کمک می کند.
انتخاب دستگاه مناسب برای تنظیم Swap
تعویض ضروری است، اما مکان و اندازه مبادله که باید پیکربندی شود نیز به همان اندازه مهم است. در حالت ایده آل، مبادله باید روی یک دستگاه سریع باشد. در کنار حافظه نهان روی پردازنده، RAM دومین حافظه سریع است. DDR4 در Pi دارای پهنای باند 4.4 گیگابایت بر ثانیه (گیگابایت بر ثانیه) است. تعویض باید در یکی از دستگاه های ذخیره سازی موجود دیگر باشد.
اگر از کارت SD برای سیستم عامل استفاده می شود، یک ناحیه مبادله کوچک به طور پیش فرض روی آن پیکربندی می شود. می توانید اندازه آن را با استفاده از دستور زیر بررسی کنید:
free -m
99 مگابایت مقدار قابل توجهی از مبادله نیست. خیلی سریع پر می شود. کارتهای SD چرخه نوشتن محدودی دارند زیرا از حافظه فلش استفاده میکنند و تعویض بیش از حد میتواند عمر آنها را کاهش دهد. همچنین، آنها دارای پهنای باند کم در حدود 50 مگابایت در ثانیه با عملکرد خواندن/نوشتن فایل 4k بسیار کمتری هستند که برای تعویض فایل های کوچکتر ضروری است.
هارد دیسک ها دارای دیسک های چرخان هستند. اگرچه قابل اعتماد هستند، اما زمان جستجوی بالاتری دارند و برای تعویض مفید نیستند.
یک SSD ارزان قیمت برای سیستم عامل انتخاب نسبتاً بهتری است. الگوریتمهای تسطیح سایش دادههای سلولهای فلاش فرسوده را سازماندهی مجدد میکنند و عمر آن را افزایش میدهند. در Pi، پهنای باند SSD حدود 150 مگابایت در ثانیه است و عملکرد فایل 4k بسیار بهتری در مقایسه با کارتهای SD دارد. سرعت جستجو نیز خوب است. اما استفاده از دیسک مشابه برای تعویض و گلوگاه سیستم عامل عملیات همزمان. از آنجایی که swap نوشتن فشرده انجام می دهد، دیسک می تواند زودتر از حد انتظار به TBW (کل بایت های نوشته شده) برسد، به خصوص در SSD های کم ظرفیت.
در حالت ایدهآل، Pi به سیستمعامل و تعویض آن روی درایوهای مختلف، یک دیسک سیستم عامل و یک SSD اختصاصی برای تعویض نیاز دارد. این باعث طول عمر دیسک سیستم عامل و سرعت تعویض می شود. علاوه بر این، پهنای باند برای هر دو به طور همزمان در دسترس خواهد بود زیرا آنها دستگاه های متفاوتی هستند.
نحوه پیکربندی Swap در سیستم عامل های Raspberry Pi
نحوه بهترین پیکربندی به این بستگی دارد که دستگاه شما از کدام سیستم عامل استفاده می کند.
سیستم عامل دسکتاپ (سیستم عامل Raspberry Pi، Ubuntu Desktop و Ubuntu Mate)
SSD را برای استفاده به عنوان تعویض با استفاده از آداپتور USB 3.0 به SATA III وصل کنید و Pi را راه اندازی کنید. فرآیندی که در اینجا نشان داده شده است روی سیستم عامل Raspberry Pi پیاده سازی شده است و باید به همان اندازه روی سایر سیستم عامل ها کار کند. اگر سیستم عامل Raspberry Pi شما نیاز به به روز رسانی دارد، این کار را انجام دهید.
ابزار لازم برای مدیریت دیسک ها با استفاده از رابط کاربری گرافیکی را نصب کنید
sudo apt install gnome-disk-utility
Disks را از Start > Accessories باز کنید.
همچنین می توانید از این دستور در ترمینال برای باز کردن ابزار استفاده کنید:
gnome-disks
SSD را از منو فرمت کنید.
با استفاده از کنترل با علامت + یک پارتیشن ایجاد کنید
کل پارتیشن را می توان برای تعویض اختصاص داد، اما حداکثر دو برابر رم کافی است.
حجم را نامگذاری کنید و برای نوع پارتیشن Other را انتخاب کنید.
Linux Swap Partition را انتخاب کرده و آن را ایجاد کنید.
می توانید بلافاصله با کلیک بر روی دکمه کنترل با نماد Play آن را سوار کنید. در طول این جلسه سوار می شود اما در راه اندازی مجدد نمی ماند. باید تنظیم شود که به طور خودکار نصب شود. روی کنترل Gear کلیک کنید و Edit Mount Options را انتخاب کنید.
پیشفرضهای جلسه کاربر را تغییر دهید و روی OK کلیک کنید. Authenticate و Disks یک ورودی به /etc/fstab اضافه می کنند تا آن را در هر بوت نصب کنند.
Pi را مجددا راه اندازی کنید، ترمینال را باز کنید و اندازه swap جدید را بررسی کنید:
free -m
تنظیمات اضافی فقط برای Raspberry OS
اکنون که swap روی یک SSD پیکربندی شده است، تعویض قدیمی مورد نیاز نیست. می توانید با ویرایش آن را خاموش کنید:
sudo nano /etc/dphys-swapfile
این پارامتر را صفر کنید:
CONF_SWAPSIZE=0
سیستم عامل سرور (اوبونتو، سیستم عامل Raspberry Pi)
این فرآیند از طریق CLI انجام می شود. برای سهولت، می توانید پارتیشن swap را با استفاده از ابزار Disks در رایانه دیگری آماده کنید، سپس SSD را به Pi متصل کرده و سرور را بوت کنید. برای ادامه، با استفاده از SSH به Pi متصل شوید.
پارتیشن swap را پیدا کنید:
lsblk
sda1 هست. UUID این دستگاه را پیدا کنید: sda1
blkid
UUID (برای شما منحصر به فرد) را کپی کنید و فایل fstab را ویرایش کنید تا به طور خودکار در هر بار بوت نصب شود:
sudo nano /etc/fstab
این خط را اضافه کنید:
UUID=”YOUR UUID” none swap sw 0 0
ذخیره کنید، راه اندازی مجدد کنید و اندازه swap را بررسی کنید:
free -m
بهینه سازی استفاده از حافظه مجازی برای عملیات اثبات تصادف
swap پیکربندی شده باید به خوبی مورد استفاده قرار گیرد. این کار با تنظیم پارامتری به نام swappiness انجام می شود. برای پیدا کردن مقدار فعلی:
cat proc/sys/vm/swappiness
به طور پیشفرض روی 60 تنظیم شده است، این مقدار مشخص میکند که هسته با چه شدتی محتویات RAM را تعویض میکند. می توان آن را بین 1 تا 100 تنظیم کرد. مقدار مناسب به نیاز خاص شما بستگی دارد. اگر می بینید که رم پی به طور مداوم در حال اتمام است، آن را روی 100 تنظیم کنید. اگر نه، آن را روی مقدار کمتری تنظیم کنید. این فایل را برای تنظیم آن ویرایش کنید:
sudo nano /etc/sysctl.conf
این خط را در پایان اضافه کنید:
vm.swappiness=100
هشدارهای مربوط به سربار پردازش و SSD TBW
تعویض عملیاتی به قدرت پردازشی نیاز دارد، معمولاً یکی از چهار هسته Pi خود را به تعویض در زمانی که RAM کاملاً پر است اختصاص می دهد.
توصیه کلی این است که از SSD برای تعویض استفاده نکنید، این در مورد مواردی که سیستم عامل (همراه با داده های کاربر) و swap روی یک دیسک هستند صادق است. هنگامی که swap همانطور که در اینجا توضیح داده شد تنظیم شده است، در این مورد اعمال نمی شود. اگرچه SSD مورد استفاده در نهایت از TBW خود عبور میکند و از کار میافتد، اما به سادگی میتوان آن را با یک SSD جدید جایگزین کرد زیرا با این فرآیند هیچ داده مهمی روی آن ذخیره نمیشود.
مزیت را برای Pi خود عوض کنید
پیکربندی صحیح swap یک راه عالی برای اثبات خرابی Pi است. این پایداری به این دلیل است که حافظه کلی موجود عامل مهم تری نسبت به سرعت حافظه در طول OOM است. Pi یخ نمی زند و به محض کاهش مصرف اسپیک، دوباره سریعتر پاسخ می دهد.
Raspberry Pi یک کامپیوتر کوچک با انعطاف پذیری عالی است. این می تواند برای اهداف مختلف با سیستم عامل های مختلف سبک وزن استفاده شود. Pi 4 بهعنوان جایگزینی برای رایانههای معمولی و همچنین یک دستگاه تعبیهشده برای مصارف صنعتی است که میتواند 24×7 کار کند.