1. En fazla CPU tüketen işlemler nasıl görüntülenir?
ps H -eo pid,pcpu | sort -nk2 | tail 31396 0.6 31396 0.6 31396 0.6 31396 0.6 31396 0.6 31396 0.6 31396 0.6 31396 0.6 30904 1.0 30914 1.0 The most CPU-intensive PID is 30914. Voiceover: Actually, it’s 31396.
2. CPU'yu en yoğun kullanan işlemin PID'sine karşılık gelen hizmet adı nedir?
1.Method: ps aux | fgrep 30914 work 30914 1.0 0.8 309568 71668 ? Sl Feb02 124:44 ./router2 –conf=rs.conf ''İşlem ./router2'dir.'' 2.Method: ll /proc/30914 lrwxrwxrwx 1 work work 0 Feb 10 13:27 cwd -> /home/work/im-env/router2 lrwxrwxrwx 1 work work 0 Feb 10 13:27 exe -> /home/work/im-env/router2/router2
3. Belirli bir bağlantı noktasının bağlantı durumu nasıl kontrol edilir?
1.Method: netstat -lap | fgrep 22022 tcp 0 0 1.2.3.4:22022 *:* LISTEN 31396/imui tcp 0 0 1.2.3.4:22022 1.2.3.4:46642 ESTABLISHED 31396/imui tcp 0 0 1.2.3.4:22022 1.2.3.4:46640 ESTABLISHED 31396/imui 2.Method: /usr/sbin/lsof -i :22022 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME router 30904 work 50u IPv4 69065770 TCP 1.2.3.4:46638->1.2.3.4:22022 (ESTABLISHED) router 30904 work 51u IPv4 69065772 TCP 1.2.3.4:46639->1.2.3.4:22022 (ESTABLISHED) router 30904 work 52u IPv4 69065774 TCP 1.2.3.4:46640->1.2.3.4:22022 (ESTABLISHED)
4. Bir makinedeki bağlantı sayısı nasıl kontrol edilir?
1.2.3.4'teki SSH arka plan programı (sshd) 22 numaralı bağlantı noktasını dinliyor. 1.2.3.4'teki sshd hizmeti için çeşitli durumlardaki (TIME_WAIT/ CLOSE_WAIT/ ESTABLISHED) bağlantı sayısını nasıl sayabiliriz? netstat -n | grep 1.2.3.4:22 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' netstat -lnpta | grep ssh | egrep "TIME_WAIT | CLOSE_WAIT | ESTABLISHED" Not: netstat, ağ bağlantısı sorunlarını izlemek için yaygın olarak kullanılan bir araçtır; özellikle grep/awk ile birleştirildiğinde güçlü bir araç haline gelir.
5. Önceden yedeklenmiş günlüklerden veri sorgulama
Önceden yedeklenmiş service.2022–06–26.log.bz2 günlüğünden, 1.2.3.4 anahtar kelimesini kaç giriş içeriyor? bzcat service.2022-06-26.log.bz2 | grep '1.2.3.4' | wc -l bzgrep '1.2.3.4' service.2022-06-26.log.bz2 | wc -l less service.2022-06-26.log.bz2 | grep '10.37.9.11' | wc -l Not: Çevrimiçi günlük dosyaları genellikle bz2 ile sıkıştırıldıktan sonra korunur. Sorgulama için sıkıştırması açılırsa çok fazla yer ve zaman tüketir. Bu nedenle bzcat ve bzgrep, araştırma ve geliştirme meslektaşlarının uzmanlaşması için temel araçlardır.
6. Yedekleme hizmeti ipuçları
/opt/web/service_web dizinini, içindeki logs dizini hariç tutarak yedekleme için sıkıştırın ve sıkıştırılmış dosyayı /opt/backup dizininde saklayın. tar -zcvf /opt/backup/service_web.tar.gz -exclude /opt/web/service_web/logs /opt/web/service_web Not: Bu komut genellikle çevrimiçi uygulamalarda kullanılır. Bir projenin sıkıştırılması ve taşınması gerektiğinde genellikle günlük dizininin hariç tutulması gerekir. Bu tür senaryolarda "exclude" parametresi önemlidir.
7. Thread sayısını sorgulama
Bir sunucunun hizmetleri için çalışan toplam iş parçacığı sayısını sorgulayın. Makine üzerindeki thread sayısı uyarı eşiğini aştığında ilgili proses ve thread bilgisini hızlı bir şekilde tanımlamalıdır. ps -eLf | wc -l pstree -p | wc -l
8. Disk alarmı, en büyük dosyayı boşaltın
Sunucuda çalışan bir Tomcat sunucusu tarafından oluşturulan çok sayıda istisna günlüğü için alan açın. Dosyanın "log" anahtar kelimesini içerdiğini ve 1 GB'tan büyük olduğunu varsayalım. 1.Adım: Dosyayı bul find / -type f -name "*log*" | xargs ls -lSh | more du -a / | sort -rn | grep log | more find / -name '*log*' -size +1000M -exec du -h {} \; 2.Adım: Dosyayı Boşalt echo "" > a.log Bu komut dosyanın içini boşaltacak. rm -rf a.log Genelde bu komutu kullanarak dosyayı sileriz, Fakat sunucu çalışırken dosyayı sildiğinizde diskte hemen yer açılmaz. Yer açılması için Tomcat sunucusunu yeniden başlatmanız gerekir. Bu yüzden 2.Adımı kullanmak bir çok servis için daha doğrudur.
9. Dosyayı görüntüleyin, yorumları filtreleyin
Server.conf dosyasını # ile başlayan yorum satırlarını filtreleyerek görüntüleyin. sed -n '/^[#]/!p' server.conf sed -e '/^#/d' server.conf grep -v "^#" server.conf
10. Disk I/O istisnası sorunlarını giderme
Yavaş yazma veya yüksek akım kullanımı gibi disk I/O istisnaları nasıl giderilir? Lütfen yüksek disk I/O istisnasına neden olan işlem kimliğini tanımlayın. iotop -o Şu anda diske yazılan tüm işlem kimliklerini görüntüleyin. Adım 2: Yazma göstergeleri düşükse ve temelde önemli bir yazma işlemi yoksa, diskin kendisinin kontrol edilmesi gerekir. Sistemi kontrol edebilirsiniz dmesg veya cat /var/log/message Yukarıdaki komutları herhangi bir disk hata mesajı olup olmadığını görmek için kullanabilirsiniz. Aynı zamanda yavaş yazılan diskteki boş bir dosya yaratarak disk arızasının yazmayı engelleyip engellemediğini görebilirsiniz.