عملکرد Raspberry Pi: افزودن ZRAM و تغییر پارامترهای هسته

یکی دو هفته پیش پست گذاشتم بررسی Pinebook Pro. از آنجایی که Raspberry Pi 4 نیز مبتنی بر ARM است، برخی از بهینه سازی هایی که در مقاله قبلی ذکر شد برای آن کاملا مناسب هستند. من می خواهم این ترفندها را به اشتراک بگذارم و ببینم آیا شما نیز همان بهبود عملکرد را تجربه می کنید.

پس از نصب Raspberry Pi در خود اتاق سرور خانگی متوجه شدم که در لحظات کمبود RAM بسیار بی پاسخ می شود و حتی یخ می زند. برای حل این مشکل، ZRAM را اضافه کردم و چند تغییر در پارامترهای هسته ایجاد کردم.

فعال کردن ZRAM در Raspberry Pi

عملکرد Raspberry Pi: افزودن ZRAM و تغییر پارامترهای هسته

ZRAM یک بلوک ذخیره سازی در RAM با نام /dev/zram0 (یا 1، 2، 3 و غیره) ایجاد می کند. صفحات نوشته شده در آنجا فشرده شده و در حافظه ذخیره می شوند. این امکان ورودی/خروجی بسیار سریع را فراهم می کند و همچنین حافظه را از طریق فشرده سازی آزاد می کند.

Raspberry Pi 4 دارای 1، 2، 4 یا 8 گیگابایت رم است. من از مدل 1 گیگابایتی استفاده خواهم کرد، بنابراین لطفاً دستورالعمل ها را بر اساس مدل خود تنظیم کنید. با 1 گیگابایت ZRAM، فایل swap پیش فرض (آهسته!) کمتر مورد استفاده قرار می گیرد. من از این اسکریپت استفاده کردم zram-swap برای نصب و پیکربندی خودکار

دستورالعمل ها در مخزن لینک بالا ارائه شده است. نصب و راه اندازی:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

اگر می خواهید پیکربندی را ویرایش کنید:

vi /etc/default/zram-swap

علاوه بر این می توانید با نصب ZRAM را فعال کنید zram-tools. اگر از این روش استفاده می کنید، حتما تنظیمات را ویرایش کنید در پرونده /etc/default/zramswapو حدود 1 گیگابایت ZRAM را نصب کنید:

sudo apt install zram-tools

پس از نصب، می توانید آمار ذخیره سازی ZRAM را با دستور زیر مشاهده کنید:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

افزودن پارامترهای هسته برای استفاده بهتر از ZRAM

حال بیایید رفتار سیستم را زمانی که Raspberry Pi در آخرین لحظه به تعویض سوئیچ می‌کند، اصلاح کنیم، که اغلب منجر به یخ زدن می‌شود. بیایید چند خط به فایل اضافه کنیم /etc/sysctl.conf و راه اندازی مجدد

این خطوط 1) فرسودگی اجتناب ناپذیر حافظه را به تاخیر می اندازد، افزایش فشار روی حافظه پنهان هسته و 2) آنها زودتر آماده شدن برای فرسودگی حافظه را آغاز می کنند، از قبل مبادله را آغاز کنید. اما تعویض حافظه فشرده از طریق ZRAM بسیار کارآمدتر خواهد بود!

در اینجا خطوطی هستند که باید در انتهای فایل اضافه کنید /etc/sysctl.conf:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

سپس سیستم را ریبوت می کنیم یا با دستور زیر تغییرات را فعال می کنیم:

sudo sysctl --system

vm.vfs_cache_pressure=500 فشار حافظه پنهان را افزایش می دهد، که تمایل هسته را برای بازیابی حافظه مورد استفاده برای ذخیره دایرکتوری و فهرست بندی اشیاء افزایش می دهد. برای مدت زمان طولانی تری از حافظه کمتری استفاده خواهید کرد. افت شدید عملکرد با مبادله قبلی خنثی می شود.

vm.swappiness = 100 پارامتر را افزایش می دهد که هسته با چه شدتی صفحات حافظه را تعویض می کند، زیرا ابتدا از ZRAM استفاده می کنیم.

vm.dirty_background_ratio=1 و vm.dirty_ratio=50 - فرآیندهای پس‌زمینه بلافاصله پس از رسیدن به حد 1% شروع به ضبط می‌کنند، اما سیستم تا زمانی که به نسبت کثیف 50% نرسد، I/O همزمان را مجبور نمی‌کند.

این چهار خط (هنگامی که با ZRAM استفاده می شود) به بهبود عملکرد کمک می کند به ناچار RAM تمام می شود و مانند من، انتقال به سوآپ آغاز می شود. با دانستن این واقعیت و همچنین با در نظر گرفتن فشرده سازی حافظه در ZRAM به میزان سه برابر، بهتر است این سوآپ را از قبل شروع کنید.

اعمال فشار بر روی حافظه نهان کمک می کند زیرا اساساً به هسته می گوییم: "هی، ببین، من هیچ حافظه اضافی برای استفاده از کش ندارم، بنابراین لطفاً در اسرع وقت از شر آن خلاص شوید و فقط پرکاربردترین/مهم ترین ها را ذخیره کنید. داده ها."

حتی با کاهش حافظه نهان، اگر با گذشت زمان بیشتر حافظه نصب شده اشغال شود، هسته خیلی زودتر شروع به تعویض فرصت طلبانه می کند، به طوری که CPU (فشرده سازی) و تعویض I/O تا آخرین لحظه منتظر نمی ماند و از همه منابع به یکباره استفاده می کند. دیگر خیلی دیر شد. ZRAM از CPU کمی برای فشرده‌سازی استفاده می‌کند، اما در اکثر سیستم‌هایی که مقدار حافظه کمی دارند، تأثیر عملکرد بسیار کمتری نسبت به تعویض بدون ZRAM دارد.

در نتیجه

بیایید دوباره به نتیجه نگاه کنیم:

pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi

pi@raspberrypi:~ $ sudo cat /proc/swaps 
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5

264448 در ZRAM تقریبا یک گیگابایت داده فشرده نشده است. همه چیز به ZRAM رفت و هیچ چیز به فایل صفحه بسیار کندتر رفت. خودتان این تنظیمات را امتحان کنید، روی همه مدل های Raspberry Pi کار می کنند. سیستم انجماد غیرقابل استفاده من به سیستمی کاربردی و پایدار تبدیل شده است.

امیدوارم در آینده نزدیک این مقاله را با نتایج تست سیستم قبل و بعد از نصب ZRAM ادامه داده و به روز رسانی کنم. الان فقط برای این وقت ندارم در ضمن، با خیال راحت تست های خود را انجام دهید و در نظرات به من اطلاع دهید. Raspberry Pi 4 یک جانور با این تنظیمات است. لذت ببرید!

در موضوع:

منبع: www.habr.com

اضافه کردن نظر