Linux-da monitorinq və performans tuning (tənzimləmə) prosesini daha ətraflı izah edim. Bu proses, sistemin resurslarının daha səmərəli istifadəsini təmin etmək, problemləri aşkar etmək və onları həll etmək üçün bir sıra addımları əhatə edir.
1. Monitorinq etmək
a. Resursların İzlənməsi
Resursların monitorinqi, sistem fəaliyyətini anlamaq üçün ilk addımdır.
- CPU İstifadəsi:
- top: Sistem proseslərini izləmək üçün real vaxtda istifadə olunur. CPU istifadəsi, yaddaş, swap və proseslərin siyahısını göstərir.
- htop:
top
-un interaktiv versiyasıdır. Proseslərin CPU və yaddaş istifadəsini daha vizual olaraq təqdim edir.
- Yaddaş İstifadəsi:
- free -m: Yaddaşın, swap-ın istifadəsini göstərir (megabaytlarla).
-h
flaqı ilə daha oxunaqlı məlumat əldə edə bilərsiniz. - vmstat: Virtual yaddaş, proseslər, disk və CPU istifadəsi haqqında məlumat təqdim edir.
- free -m: Yaddaşın, swap-ın istifadəsini göstərir (megabaytlarla).
- Disk İstifadəsi:
- df -h: Disk bölmələrinin istifadəsini yoxlayır.
-h
flaqı ilə insan oxunaqlı formatda məlumat verir. - iostat: Disk I/O statistikalarını göstərir, bu da disk performansını qiymətləndirmək üçün faydalıdır.
- df -h: Disk bölmələrinin istifadəsini yoxlayır.
- Şəbəkə İstifadəsi:
- netstat -tuln: Aktiv TCP/UDP portlarını və onların əlaqələrini göstərir.
- iftop: Real vaxtda şəbəkə trafikini izləmək üçün interaktiv bir alətdir.
b. Tarixi Məlumatların Yığılması
Tarixi məlumatlar, sistemin zamanla necə davrandığını anlamaq üçün əhəmiyyətlidir.
- sar: Sistem fəaliyyətini izləmək və tarixi məlumat toplamaq üçün istifadə olunur.
sar -u
CPU istifadəsini,sar -r
isə yaddaş istifadəsini göstərir. - collectd: Resurs istifadəsi statistikalarını toplamaq və vizuallaşdırmaq üçün istifadə olunur.
collectd
-in konfiqurasiyası ilə fərqli pluginlər əlavə etmək mümkündür.
2. Problemlərin aşkarlanması üçün
Topladığınız məlumatları analiz edərək aşağıdakılara diqqət yetirin:
- CPU: Hər hansı bir prosesin yüksək CPU istifadəsi olub-olmadığını yoxlayın.
- Yaddaş: Swap istifadəsinin artması, yaddaşın çatışmazlığına işarə edə bilər.
- Disk: Diskdə yüksək I/O gözləmə müddətləri varsa, bu, yavaş I/O-nun göstəricisidir.
- Şəbəkə: Gecikmə və paket itkiləri şəbəkə problemlərinin əlamətidir.
3. Performans Tuning
Daha sonra, monitorinq və analiz mərhələsində aşkar etdiyiniz problemləri həll etmək üçün tuning (tənzimləmə) addımlarını həyata keçirirsiniz.
a. Yaddaş Tənzimləməsi
- Swappiness: Yaddaşın swap-a nə zaman köçürüləcəyini tənzimləyir. Dəyəri 10-20 arasında qoymaq yaxşıdır (
sysctl vm.swappiness=10
). - Dirty Ratios: Diskdəki yazıların necə idarə olunduğunu tənzimləmək üçün
vm.dirty_ratio
vəvm.dirty_background_ratio
parametrlərini dəyişdirin. Məsələn,sysctl vm.dirty_ratio=10
ilə yazıların daha tez yazılmasını təmin edə bilərsiniz.
b. CPU Yükünü yoxlamaq
- Prioritet Dəyişiklikləri: Proseslərin prioritetini dəyişdirmək üçün
nice
vərenice
istifadə edin. Məsələn,renice +10 <pid>
ilə prioriteti azaldın. - CPU Affinity:
taskset
istifadə edərək prosesləri müəyyən CPU nüvələrinə yönləndirin. Məsələn,taskset -c 0,1 <pid>
ilə prosesin yalnız 0 və 1-ci nüvələrdə işləməsini təmin edə bilərsiniz.
c. Disk Performansını yoxlamaq
- Disk Tuning: Disk fayl sistemində
noatime
vənodiratime
parametrlərini əlavə edin. Bu, disk yazmalarını azaldaraq performansı artırır. - I/O Scheduler: Disk I/O planlayıcısını (
cfq
,deadline
,noop
) dəyişdirərək performansı optimallaşdırın. Bunu/sys/block/<device>/queue/scheduler
-da görə bilərsiniz.
d. Şəbəkə Tənzimləməsi
- TCP Parametrləri:
sysctl
ilə TCP bağlantılarını optimallaşdırın. Məsələn,sysctl -w net.core.rmem_max=16777216
ilə maksimum şəbəkə qəbul yığma dərəcəsini artırın. - QoS (Quality of Service):
tc
alətini istifadə edərək şəbəkə trafikini idarə edin, bu da prioritet verməyə və gecikmələri azaltmağa kömək edir.
4. Test Etmə və Monitorinq
Dəyişikliklər etdikdən sonra sistemin performansını yenidən izləyin. Dəyişikliklərin sistemin fəaliyyətinə təsirini qiymətləndirin. Əgər gözlənilən nəticələr alınmırsa, əlavə düzəlişlər edin.
5. Backup
Hər hansı bir böyük dəyişiklik etmədən əvvəl sistemin yedəklənməsini unutmayın. Bu, potensial problemlərin baş verməsi halında geri qaytarmağa imkan verir.
Nəticə olaraq yekunda
Linux-da monitorinq və performans tuning bir prosesdir. Bu prosesdə məqsəd sistem resurslarını daha səmərəli istifadə etmək və potensial problemləri öncədən aşkar etməkdir. Yuxarıda qeyd olunan alətləri və yanaşmaları istifadə edərək sisteminizi optimallaşdıra bilərsiniz. Hər hansı bir konkret sualınız varsa, kömək etməyə hazıram!