چگونه هسته لینوکس را با سیستم فایل /proc تنظیم کنیم

هسته لینوکس یک مارول قابل تنظیم است که به شما امکان می دهد در هنگام اجرا و بدون نیاز به راه اندازی مجدد، تغییراتی در پارامترهای آن ایجاد کنید.
چگونه هسته لینوکس را با سیستم فایل /proc تنظیم کنیم

چگونه هسته لینوکس را با سیستم فایل /proc تنظیم کنیم

لینوکس یک سیستم عامل شگفت انگیز و قدرتمند است. به طور خاص، هسته لینوکس منبع بسیاری از ابرقدرت های آن است. ما سالهاست که از لینوکس استفاده می کنیم و از نسخه های زیادی از هسته لینوکس را تابحال دیده ایم.

اکثر کاربران و حتی sysadmin ها هرگز نیازی به کامپایل هسته ندارند. در اکثر توزیع‌ها، کامپایل پیش‌فرض برای اکثر موارد استفاده کاملاً مناسب است. اما مواقعی وجود دارد که کمی ایجاد تغییرات تنظیمات سفارشی لازم است. خبر خوب این است که می توان هسته را به راحتی بدون کامپایل مجدد یا حتی راه اندازی مجدد تنظیم کرد.

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

فایل سیستم /proc چیست؟

سیستم /procفایل یکی از حیاتی ترین اجزای هسته است. این یک فایل سیستم مجازی است که فقط در حافظه وجود دارد. سیستم /procفایل توسط استاندارد سلسله مراتبی سیستم فایل لینوکس (FHS) به عنوان مکانی برای لینوکس برای ذخیره اطلاعات مربوط به سیستم، هسته و تمام فرآیندهای در حال اجرا بر روی هاست تعریف شده است. در نظر گرفته شده است که مکانی برای هسته برای افشای اطلاعات مربوط به خود برای تسهیل دسترسی به داده های مربوط به سیستم برای برنامه نویسان، توسعه دهندگان و sysadmin ها باشد.

جمع آوری این داده ها بر عملکرد کلی یک میزبان لینوکس تأثیر نمی گذارد. هسته لینوکس برای جمع‌آوری و ذخیره‌سازی مداوم داده‌های عملکردی طراحی شده است که می‌تواند توسط هر و همه ابزارهای نظارت بر عملکرد قابل دسترسی و نمایش باشد. ابزارها به آن داده ها دسترسی دارند تا آن ها را بخوانند و سپس آن ها را دستکاری کرده و در قالبی معنادار نمایش دهند. از آنجایی که این داده ها قبلاً در /procسیستم فایل ذخیره شده اند، از فراخوانی عملکرد پیچیده و وقت گیر به قسمت های داخلی هسته جلوگیری می کند.

برخی از داده های موجود در /procسیستم فایل برای تنظیم هسته استفاده می شود. مقادیر موجود در آن فایل ها را می توان به راحتی با ابزارهای ساده و آشنای لینوکس تغییر داد.

مشاهده داده ها

هنگامی که به عنوان پنجره ای به وضعیت سیستم عامل و نمای آن از سیستم و سخت افزار استفاده می شود، هسته دسترسی آسان به تقریباً هر بیت اطلاعاتی را که ممکن است به عنوان یک sysadmin بخواهید فراهم می کند. تمام ابزارهای جالبی که sysadmin ها برای دسترسی به داده ها در /procسیستم فایل استفاده می کنند، برای مشاهده وضعیت سیستم عامل و به دست آوردن داده های مورد نیاز، به هسته بستگی دارد.

با مشاهده برخی از داده های موجود شروع کنید. ابتدا /procفهرست کاری فعلی (PWD) را ایجاد کنید و محتویات را فهرست کنید. بسیاری از این ها دایرکتوری و برخی دیگر فایل هستند. ما از شبیه ساز ترمینال Konsole استفاده می کنیم. رنگ پیش‌فرض دایرکتوری‌ها آبی است و فایل‌ها رنگ متن ترمینال هستند که ما آن را روی کهربا تنظیم کرده ایم. پیوندهای نمادین فیروزه ای هستند.

چگونه هسته لینوکس را با سیستم فایل /proc تنظیم کنیم

چگونه هسته لینوکس را با سیستم فایل /proc تنظیم کنیم

همه دایرکتوری های عددی نشان دهنده شناسه فرآیند (PID) یک فرآیند هستند و حاوی داده های مورد نیاز برای مدیریت آن فرآیند توسط هسته هستند. فایل‌های نام‌گذاری‌شده – برخلاف فهرست‌های نام‌گذاری‌شده – حاوی داده‌های مربوط به نام فایل هستند. دایرکتوری های نامگذاری شده معمولا حاوی یک سری فایل و زیر شاخه های مرتبط با نام دایرکتوری هستند.

یک مثال statفایل است. این فایل حاوی داده های آماری مربوط به CPU های سیستم است. catبرای مشاهده آن فایل می توانید از دستور استفاده کنید. این کار را چندین بار انجام دهید یا از دستور زیر به عنوان root استفاده کنید تا فایل را هنگام تغییر مشاهده کنید:

# watch cat /proc/stat

این watchدستور به طور پیش فرض هر دو ثانیه یک بار این دستور را تکرار می کند تا زمانی که از Ctrl+C برای شکستن استفاده کنید. همچنین می توانید فاصله زمانی متفاوتی را مشخص کنید. برای این اطلاعات صفحه مرد را بخوانید.

یکی دیگر از فایل های جالب این است proc/meminfo. سعی کنید آن یکی را برای چند دقیقه تماشا کنید. همه ابزارهای تعیین مشکل و نظارت مورد علاقه ما از محتویات /procبرای به دست آوردن داده های خود استفاده می کنند.

freeبه عنوان مثال به دستور نگاه کنید :

# free
               total        used        free      shared  buff/cache   available
Mem:        32726880      727108    31104776        1560      894996    31610372
Swap:       16777208           0    16777208

این دستور بعدی نتایج freeدستور و همچنین meminfoفایل را به طور همزمان نمایش می دهد. مطمئن شوید که نقل قول های یک و دو را درست دریافت کنید. خط #نمادها کمی تفکیک بصری بین خروجی‌های دو دستور را فراهم می‌کند و می‌تواند تا زمانی که شما نیاز دارید باشد تا سرنخ بصری کافی برای خود فراهم کنید. ما اینجا را کوتاه کردیم تا همه در یک خط نشان داده شود.

# watch 'free ; echo "###########" ; cat /proc/meminfo | head -20'

تفسیر داده‌هایی که از این دستورات خروجی می‌شوند خارج از محدوده این مقاله است، اما می‌توان آن را در بخش 1.14، صفحه /proc از توضیحات LFSH ، در وب‌سایت پروژه اسناد لینوکس یافت.

این man 5 procصفحه همچنین دارای توضیحات خوبی از محتویات همه /procفایل ها است.

دستور freeتنها یکی از ابزارهای متعددی است که به شما امکان می دهد وضعیت هسته در حال اجرا را در زمان واقعی مشاهده کنید.

موارد دیگری که ما به آن علاقه داریم عبارتند از top، htopو glances، که همگی نمای جامعی از سیستم در حال اجرا را نشان می دهند. با استفاده از طرح‌بندی‌های متفاوت و گزینه‌های مختلف برای پیکربندی نحوه نمایش داده‌ها، همگی می‌توانند میزان استفاده از حافظه و تعویض را نشان دهند. استفاده فردی و کلی از CPU؛ لیستی از فرآیندهای سیستم و کاربر؛ و داده‌های مربوط به هر فرآیند مانند حافظه، استفاده از CPU، کل زمان اجرای فرآیند، PID و شناسه فرآیند والد (PPID).

این سه ابزار، به همراه reniceدستور، می‌توانند فرآیندهای در حال اجرا را renice یا از بین ببرند. Renicing یک فرآیند، داده های موجود در /proc/PID/statفایل را تغییر می دهد. داده های این فایل پیچیده هستند و فایل توسط ویرایشگرها یا تغییر مسیر قابل نوشتن نیست، بنابراین لازم است از ابزارهای renice موجود استفاده کنید.

ابزارهای دیگری که ما اغلب استفاده می کنیم عبارتند از lsblkiptoplsusblspciو سایر ابزارهای مرتبط که سخت افزار را فهرست و مدیریت می کنند. هر یک از ابزارهای متعددی که فرآیندها، حافظه، شبکه، سخت افزار متصل شده و هر چیز دیگری را مدیریت می کنند از /procسیستم فایل برای انجام این کار استفاده می کنند.

پیشنهاد ویژه قائم هاست خرید وی پی اس اندروید با سیستم عامل های مختلف ویندوز و لینوکس ، همچنین با خرید هاست پرسرعت ایران می توانید از بالاترین سرعت ممکن بهرمند شوید ، جهت اطلاعات بیشتر و یا سوالات قبل از خرید از طریق ارسال تیکت به بخش فروش قائم هاست بصورت 24 ساعته با ما در ارتباط باشید.

ایجاد تغییرات در هسته در حال اجرا

این /procفایل سیستم همچنین به گونه ای طراحی شده است که در صورت لزوم، دسترسی به تغییر بسیاری از مقادیر پیکربندی را فراهم می کند تا به شما امکان می دهد سیستم در حال اجرا را بدون نیاز به راه اندازی مجدد پس از ایجاد تغییرات تنظیم کنید.

یکی از اولین چیزهایی که باید روی هاست لینوکس که برای روتر استفاده می کنم تنظیم کنم این است که آن را به عنوان روتر فعال کنم. این کار با تنظیم محتوای فایل /proc/sys/net/ipv4/ip_forwardروی 1. چندین روش برای ایجاد تغییرات در متغیرهای تنظیم هسته وجود دارد و همه آنها به سادگی مقدار موجود در /procفایل سیستم را تغییر می دهند.

دو روش اول فقط موقتی هستند و باید بعد از هر بار راه اندازی مجدد انجام شوند.

ابتدا می توانم از دستور زیر استفاده کنم:

# echo 1 > /proc/sys/net/ipv4/ip_forward

دستور sysctlدقیقاً همین کار را می کند: مقدار آن فایل را 1 تنظیم می کند:

#  sysctl -w net.ipv4.ip_forward = 1

می توانید ارزش هر فایلی را بررسی کنید:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

یا:

# cat sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

اما همه این تغییرات فقط گذرا هستند و در هر بوت به مقادیر پیش‌فرض خود باز می‌گردند.

دائمی کردن تغییرات

دائمی کردن این تغییرات بسیار آسان است. فقط خطوط زیر را به /etc/sysctl.confفایل یا به یک فایل جدید در اضافه کنید /etc/sysctl.d. این فایل ها خوانده می شوند و برای تنظیم پارامترهای هسته در زمان بوت استفاده می شوند. شما می توانید برخی از گزینه های کرنل دیگر را که برای رفع نیازهای خود تنظیم کرده ام در این فایل مشاهده کنید:

################################################################################                            #                            Local-sysctl.conf                                 #
#                                                                              #
# Local kernel option settings.                                                #
# Install this file in the /etc/sysctl.d directory.                            #
#                                                                              #
# Use the command: sysctl -p /etc/sysctl.d/local-sysctl.conf to activate.      #
#                                                                              #
################################################################################
################################################################################
# Local Network settings - Specifically to disable IPV6                        #
################################################################################
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
################################################################################
# And to make this a router                                                    #
################################################################################
net.ipv4.ip_forward = 1
################################################################################
# Virtual Memory Swappiness                                                    #     
################################################################################
# Set swappiness
vm.swappiness = 13

سیستم /procفایل “نقطه واحد حقیقت” (SPOT) برای به دست آوردن اطلاعات در مورد سیستم در حال اجرا و تغییر متغیرهای تنظیم هسته است. ما اغلب از آن استفاده می کنیم، مستقیم یا غیرمستقیم، با استفاده از ابزارهای رایج گنو و سایر ابزارهایی که قبلاً در هر توزیع لینوکس ارائه شده است.

توانایی تنظیم هسته لینوکس در حالی که در حال اجرا است یکی از قدرتمندترین جنبه های استفاده از لینوکس است. این امکان ایجاد تغییرات در پارامترهای هسته را در حین اجرا و بدون نیاز به راه اندازی مجدد فراهم می کند.

سایر مطالب مرتبط »

5/5 - (8 امتیاز)