Linux çok güvenilir olmasına rağmen, akıllı sistem yöneticileri sistemin davranışını ve kullanımını her zaman izlemenin bir yolunu bulmalıdır. yakın bir çalışma süresinin sağlanması 100% mümkün olduğunca ve kaynakların kullanılabilirliği birçok ortamda kritik ihtiyaçlardır. Sistemin geçmiş ve mevcut durumunu incelemek, olası sorunları öngörmemizi ve büyük olasılıkla önlememizi sağlayacaktır.
Linux Foundation Sertifikasyon Programının Tanıtımı
Bu makalede, sistem durumunu kontrol etmek, kesintileri analiz etmek ve devam eden sorunları gidermek için çoğu yukarı akış dağıtımında bulunan birkaç aracın bir listesini sunacağız. Özellikle, mevcut sayısız veriden CPU, depolama alanı ve bellek kullanımı, temel süreç yönetimi ve günlük analizine odaklanacağız.
Linux'ta depolama alanı kullanımını denetlemek için kullanılan iyi bilinen 2 komut vardır: df ve du.
İlki, df (disketsiz anlamına gelir), genellikle dosya sistemine göre genel disk alanı kullanımını bildirmek için kullanılır.
Seçenekler olmadan, df bayt cinsinden disk alanı kullanımını bildirir. İle -H işaretle, aynı bilgiyi MB veya GB kullanarak gösterecektir. Bu raporun ayrıca her dosya sisteminin toplam boyutunu (1 K bloklar halinde), boş ve kullanılabilir alanları ve her depolama aygıtının bağlama noktasını içerdiğini unutmayın.
#df. #df -h.
Bu kesinlikle güzel - ancak bir dosya sistemini kullanılamaz hale getirebilecek başka bir sınırlama daha var ve bu da düğümlerin tükeniyor. Bir dosya sistemindeki tüm dosyalar, meta verilerini içeren bir düğüme eşlenir.
# df -hTi.
kullanılan ve kullanılabilir düğümlerin miktarını görebilirsiniz:
Yukarıdaki görsele göre, 146 kullanılan düğümler (1%) /home içinde, bu, o dosya sisteminde hala 226K dosya oluşturabileceğiniz anlamına gelir.
Düğümler bitmeden çok önce depolama alanınızın tükenebileceğini veya bunun tersini unutmayın. Bu nedenle, yalnızca depolama alanı kullanımını değil, aynı zamanda dosya sistemi tarafından kullanılan düğüm sayısını da izlemeniz gerekir.
Nedensiz inode kullanan boş dosyaları veya (0B'yi işgal eden) dizinleri bulmak için aşağıdaki komutları kullanın:
# /home -type f -boş bul. # bul /home -type d -boş.
Ayrıca, ekleyebilirsiniz -silmek Bu boş dosyaları ve dizinleri de silmek istiyorsanız, her komutun sonundaki işareti işaretleyin:
# bul /home -type f -boş --delete. # /home -type f -boş bul.
Önceki prosedür 4 dosyayı sildi. /home'da kullanılan / mevcut düğümlerin sayısını tekrar kontrol edelim:
# df -hTi | eve dön.
Gördüğünüz gibi, var 142 şimdi kullanılan düğümler (öncekiden 4 daha az).
Belirli bir dosya sisteminin kullanımı önceden tanımlanmış bir yüzdenin üzerindeyse, du (disk kullanımının kısaltması) en çok yer kaplayan dosyaların ne olduğunu bulmak için.
Örnek için verilmiştir /var, yukarıdaki ilk resimde görebileceğiniz gibi, %67 oranında kullanılmaktadır.
# du -sch /var/*
Not: İçlerinde tam olarak ne olduğunu ve her bir öğenin ne kadar kapladığını öğrenmek için yukarıdaki alt dizinlerden herhangi birine geçiş yapabilirsiniz. Daha sonra bu bilgileri, gerekmediğinde bazı dosyaları silmek veya gerekirse mantıksal birimin boyutunu genişletmek için kullanabilirsiniz.
Ayrıca Oku
Genel bir CPU/bellek kullanımı ve süreç yönetimi denetimi gerçekleştirmek için kullanılan Linux'taki klasik araç, üst komut. Ayrıca top, çalışan bir sistemin gerçek zamanlı görünümünü görüntüler. Aynı amaç için kullanılabilecek başka araçlar da var, örneğin htop, ancak herhangi bir Linux dağıtımında kullanıma hazır olduğu için en üstte yer aldım.
Başlamak için, komut satırınıza aşağıdaki komutu yazmanız ve Enter tuşuna basmanız yeterlidir.
# Tepe.
Tipik bir üst çıktıyı inceleyelim:
1'den 5'e kadar olan satırlarda aşağıdaki bilgiler görüntülenir:
1. Geçerli saat (8:41:32 pm) ve çalışma süresi (7 saat 41 dakika). Sistemde sadece bir kullanıcı oturum açmış olup, sırasıyla son 1, 5 ve 15 dakikadaki yük ortalamasıdır. 0.00, 0.01 ve 0.05, bu zaman aralıklarında sistemin zamanın %0'ı boyunca boşta olduğunu gösterir (0.00: hiçbir işlem yapılmadı). CPU'yu beklerken), daha sonra %1 (0.01: CPU için ortalama 0,01 işlem bekliyordu) ve %5 oranında aşırı yüklendi. (0.05). 0'dan küçükse ve sayı (örneğin 0,65) daha küçükse, sistem 0,65'in göründüğü yere bağlı olarak son 1, 5 veya 15 dakika boyunca %35 boştaydı.
2. Şu anda çalışan 121 süreç var (6'da tam listeyi görebilirsiniz). Sadece 1 tanesi çalışıyor (bu durumda en üstte, %CPU sütununda görebileceğiniz gibi) ve kalan 120 tanesi arka planda bekliyor ama “uyuyor” ve biz onları çağırana kadar bu durumda kalacak. Nasıl? Bunu bir mysql istemi açarak ve birkaç sorgu çalıştırarak doğrulayabilirsiniz. Çalışan işlemlerin sayısının nasıl arttığını fark edeceksiniz.
Alternatif olarak, bir web tarayıcısı açabilir ve Apache tarafından sunulan herhangi bir sayfaya gidebilirsiniz ve aynı sonucu alırsınız. Elbette bu örnekler, her iki hizmetin de sunucunuzda kurulu olduğunu varsayar.
3. us (değiştirilmemiş önceliğe sahip kullanıcı işlemlerini çalıştıran süre), sy (çekirdek işlemlerini çalıştıran süre), ni (değiştirilmiş önceliğe sahip kullanıcı işlemlerini çalıştıran süre), wa (G/Ç için bekleyen süre tamamlama), hi (donanım kesintilerine hizmet etmek için harcanan zaman), si (yazılım kesintilerine hizmet etmek için harcanan zaman), st (hiper yönetici tarafından mevcut vm'den çalınan süre - yalnızca sanallaştırılmış ortamlar).
4. Fiziksel bellek kullanımı.
5. Alan kullanımını değiştirin.
RAM belleği ve takas kullanımını incelemek için de kullanabilirsiniz. Bedava emretmek.
# Bedava.
Tabii ki de kullanabilirsiniz -m (MB) veya -G (GB), aynı bilgiyi insan tarafından okunabilir biçimde görüntülemek için geçiş yapar:
# serbest -m.
Her iki durumda da, çekirdeğin mümkün olduğunca fazla bellek ayırdığını ve talep ettiklerinde işlemler için kullanılabilir hale getirdiğini bilmeniz gerekir. Özellikle “-/+ arabellek/önbellek” satırı, bu G/Ç önbelleği dikkate alındıktan sonraki gerçek değerleri gösterir.
Başka bir deyişle, işlemler tarafından kullanılan bellek miktarı ve diğer işlemler için kullanılabilir olan miktar (bu durumda, 232 MB kullanılmış ve 270 MB sırasıyla mevcuttur). İşlemler bu belleğe ihtiyaç duyduğunda, çekirdek G/Ç önbelleğinin boyutunu otomatik olarak azaltır.
Ayrıca Oku: Linux Bellek Kullanımını Kontrol Etmek İçin 10 Yararlı “ücretsiz” Komut
Herhangi bir zamanda, Linux sistemimizde çalışan birçok süreç vardır. Süreçleri yakından izlemek için kullanacağımız iki araç var: ps ve ağaç.
Kullanmak -e ve -F seçenekler birleştirildi (-ef) sisteminizde çalışmakta olan tüm işlemleri listeleyebilirsiniz. Bu çıktıyı aşağıdaki gibi diğer araçlara aktarabilirsiniz: grep (açıklandığı gibi LFCS serisinin 1. Kısmı) çıktıyı istediğiniz işlem(ler)e göre daraltmak için:
# ps -ef | grep -i kalamar | grep -v grep.
Yukarıdaki işlem listesi aşağıdaki bilgileri gösterir:
sürecin sahibi, PID, Ana PID (ana süreç), işlemci kullanımı, komutun başladığı zaman, tty (? bir arka plan programı olduğunu gösterir), birikmiş CPU zamanı ve işlemle ilişkili komut.
Ancak, belki de tüm bu bilgilere ihtiyacınız yoktur ve işlemin sahibini, onu başlatan komutu, PID'sini ve PPID'sini göstermek istersiniz. ve şu anda kullandığı bellek yüzdesi - bu sırayla ve azalan düzende bellek kullanımına göre sıralayın (varsayılan olarak ps'nin şuna göre sıralandığını unutmayın: PID).
# ps -eo kullanıcısı, iletişim, pid, ppid,%mem --sort -%mem.
%mem'in önündeki eksi işareti, azalan düzende sıralamayı gösterir.
Herhangi bir nedenle bir süreç çok fazla sistem kaynağı almaya başlarsa ve genel durumu tehlikeye atması muhtemeldir. sistemin işlevselliği, aşağıdaki sinyallerden birini kullanarak yürütmesini durdurmak veya duraklatmak isteyeceksiniz. NS öldürmek ona göre programlayın. Bunu yapmayı düşünmenizin diğer nedenleri, bir işlemi ön planda başlatmış ancak onu duraklatmak ve arka planda devam ettirmek istemenizdir.
Sinyal adı | Sinyal numarası | Tanım |
SIGTERM | 15 | Süreci zarif bir şekilde öldürün. |
SIGINT | 2 | Ctrl + C tuşlarına bastığımızda gönderilen sinyal budur. Süreci kesintiye uğratmayı amaçlar, ancak süreç bunu görmezden gelebilir. |
SIGKILL | 9 | Bu sinyal aynı zamanda süreci kesintiye uğratır, ancak bunu koşulsuz olarak yapar (dikkatli kullanın!), çünkü bir süreç onu görmezden gelemez. |
SIGHUP | 1 | “Hang UP”ın kısaltması olan bu sinyal, cinlere işlemi gerçekten durdurmadan yapılandırma dosyasını yeniden okuma talimatı verir. |
SIGTSTP | 20 | Yürütmeyi duraklatın ve devam etmek için hazır bekleyin. Ctrl + Z tuş kombinasyonunu yazdığımızda gönderilen sinyal budur. |
SIGSTOP | 19 | İşlem duraklatılır ve yeniden başlatılana kadar CPU döngülerinden daha fazla ilgi görmez. |
SIGCONT | 18 | Bu sinyal, işleme SIGTSTP veya SIGSTOP aldıktan sonra yürütmeye devam etmesini söyler. Bu, fg veya bg komutlarını kullandığımızda kabuk tarafından gönderilen sinyaldir. |
Belirli bir işlemin normal yürütülmesi, işlem yapılırken ekrana hiçbir çıktı gönderilmeyeceğini ima ettiğinde çalışırken, arka planda başlatmak isteyebilirsiniz (sonuna bir ve işareti ekleyerek). emretmek).
İşlem adı &
veya,
Ön planda çalışmaya başladıktan sonra, durdurun ve ile arka plana gönderin.
Ctrl + Z.
# öldür -18 PID.
Lütfen her dağıtımın, aşağıdakiler gibi yaygın hizmetleri nazikçe durdurmak / başlatmak / yeniden başlatmak / yeniden yüklemek için araçlar sağladığını unutmayın. hizmet SysV tabanlı sistemlerde veya sistemctl systemd tabanlı sistemlerde.
Bir işlem bu yardımcı programlara yanıt vermezse, ona SIGKILL sinyali göndererek onu zorla öldürebilirsiniz.
# ps -ef | grep apache'si. # öldür -9 3821.
Sistemde herhangi bir kesinti olduğunda (güç kesintisi, donanım arızası, bir işlemin planlı veya plansız kesintisi veya herhangi bir anormallik olsun), günlükler /var/log neler olduğunu veya karşılaştığınız sorunlara neyin neden olabileceğini belirlemek için en iyi arkadaşlarınızdır.
# cd /var/log.
içindeki bazı maddeler /var/log normal metin dosyalarıdır, diğerleri dizinlerdir ve diğerleri de döndürülmüş (tarihsel) günlüklerin sıkıştırılmış dosyalarıdır. Adında kelime hatası olanları kontrol etmek isteyeceksiniz, ancak gerisini incelemek de işe yarayabilir.
Bu senaryoyu hayal edin. LAN istemcileriniz ağ yazıcılarına yazdıramıyor. Bu durumu gidermek için ilk adım, /var/log/cups dizin ve orada ne olduğunu görün.
kullanabilirsiniz kuyruk error_log dosyasının son 10 satırını görüntüleme komutu veya tail -f error_log günlüğün gerçek zamanlı görünümü için.
# cd /var/log/bardaklar. # ls. # tail error_log.
Yukarıdaki ekran görüntüsü, sorununuza neyin neden olabileceğini anlamanız için bazı yararlı bilgiler sağlar. Adımları izlemenin veya işlemin hatalı çalışmasını düzeltmenin genel sorunu çözmeyebileceğini unutmayın, ancak alışırsanız Her sorun ortaya çıktığında (yerel veya ağ kaynaklı olsun) en başından günlükleri kontrol etmek için kesinlikle haklı olacaksınız Izlemek.
Donanım arızalarını gidermek zor olsa da, aşağıdakileri kontrol etmelisiniz. mesaj ve mesaj günlükleri ve ilgili kelimeler için grep arızalı olduğu varsayılan bir donanım parçasına.
Aşağıdaki resim şuradan alınmıştır /var/log/messages aşağıdaki komutu kullanarak kelime hatası aradıktan sonra:
# daha az /var/log/mesaj | grep -i hatası.
İki depolama aygıtıyla ilgili bir sorunumuz olduğunu görebiliriz: /dev/sdb ve /dev/sdc, bu da RAID dizisinde bir soruna neden olur.
Bu makalede, sisteminizin genel durumundan her zaman haberdar olmanıza yardımcı olabilecek bazı araçları inceledik. Ayrıca, işletim sisteminizin ve kurulu paketlerinizin en son kararlı sürümlerine güncellendiğinden emin olmanız gerekir. Ve asla, asla, günlükleri kontrol etmeyi unutmayın! Ardından, herhangi bir soruna kesin çözüm bulmak için doğru yöne gideceksiniz.
Aşağıdaki formu kullanarak yorum, öneri veya varsa sorularınızı iletebilirsiniz.