Linux

Linux kernelində yaddaş çatışmazlığı probleminin həlli

Linux nüvəsində (kernel) operativ yaddaş çatışmazlığı problemi əsasən, sistemin yaddaş idarəetmə mexanizmləri və tələblərinə uyğun olmayan istifadə hallarında və ya böyük miqdarda yaddaş tələbi ilə əlaqəli ola bilər. Bu cür problemlər müxtəlif səbəblərdən yarana bilər Overcommit Policy (Yaddaş Artıqtəyin Siyasəti)
Linux nüvəsi, operativ yaddaşı daha effektiv idarə etmək üçün “overcommit” adlı siyasətdən istifadə edir. Bu siyasət tətbiqlərə lazım olduğundan daha çox yaddaş ayıra bilər, lakin real istifadədə bu yaddaş olmaya bilər. Bu, xüsusilə yaddaş tələb edən tətbiqlər işlədikdə və ya çox sayda proses eyni vaxtda yaddaşa çıxış etdikdə problemlərə səbəb ola bilər.Həll olaraq 

/proc/sys/vm/overcommit_memory - faylını tənzimləyərək, overcommit siyasətini dəyişə bilərsiniz

0: Defolt (balanslaşdırılmış).
1: Həmişə overcommit.
2: Yaddaş yalnız kifayət qədər olduqda ayırılır.

OOM Killer (Out of Memory Killer)
Sistem yaddaşı tükəndikdə, Linux nüvəsi avtomatik olaraq bəzi prosesləri dayandıran OOM Killer-i işə salır. Bu, sistemin tam dayanmamasını təmin etmək üçündür, lakin kritik proseslərin bağlanması arzuolunmaz nəticələrə gətirib çıxara bilər.Həll yolu olaraq bu qaydalara riayyət edək.Proseslərin prioritetini dəyişərək OOM Killer-in müəyyən prosesləri bağlamasının qarşısını almaq olar. Bu məqsədlə, oom_score_adj və ya oom_adj parametrlərini istifadə edə bilərsiniz. Yaddaş çatışmazlığı zamanı Linux nüvəsi operativ yaddaşı kompensasiya etmək üçün “swap” bölməsindən istifadə edir. Lakin bəzi sistemlərdə swap bölməsi yoxdur və ya kifayət qədər böyük deyil.Çıxış yolu olaraq Swap bölməsini əlavə edin və ya həcmini artırın.

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Bu komandalar 2GB ölçülü bir swap faylı əlavə edəcəkdir.

Uzun müddət işləyən proseslər yaddaşı səmərəsiz idarə edə və yaddaş sızmasına səbəb ola bilər. Bu, zamanla yaddaş çatışmazlığına gətirib çıxarır.top, htop, və ya free kimi alətlərlə yaddaş istifadəsini monitorinq edin və problemləri müəyyənləşdirin.Linux operativ yaddaşın böyük hissəsini disk cache və ya buffers üçün istifadə edə bilər. Bu, müəyyən hallarda yaddaş çatışmazlığı kimi görünə bilər.Həll yolu olaraq Cache-ni təmizləmək üçün 

sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Bu addımları ataraq problemləri azaltmaq və Linux kernelində yaddaş idarəetməsini optimallaşdırmaq olar

Related Articles

Bir cavab yazın

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir

Back to top button