NetWorker: İşleme göre Yüksek Bellek veya CPU kullanımı sorunlarını giderme
Summary: Bu KB, bir işlem tarafından yüksek bellek ve/veya CPU kullanımı sorunlarının nasıl giderileceğine yönelik genel bir bakış sağlar.
Instructions
NetWorker ile ilgili bir sorun giderirken bir veya daha fazla işlemin büyük miktarda bilgi işlem kaynağı tükettiği belirlenebilir. Top veya Windows Görev Yöneticisi gibi işletim sistemi komutları, sistem kullanımı hakkında belirli bir noktada içgörü sağlayabilir; Bununla birlikte, belirli bir penceredeki sistem kaynak kullanımını da yakalayabilir ve bunu diğer sistem günlükleriyle karşılaştırabiliriz.
NetWorker günlükleri ve işlemleri aşağıda ayrıntılı olarak açıklanmıştır:
Bu KB, işletim sistemi işlevlerini ve günlüğe kaydetmeyi kullanarak bir yöntem sağlar.Komut dosyası olmayan yaklaşım: NetWorker: nsrwatch yardımcı programını kullanarak NetWorker da Görünür Askıda Kalma Sorununu Giderme.
Microsoft Windows:
Microsoft Windows sistemlerinde, belirli bir işlem tarafından kaynak kullanımını izlemek için kullanılabilecek Görev Yöneticisi ve Performans İzleyicisi gibi çeşitli grafik araçları vardır. Bu KB'de, zaman damgası için çalıştırılabilen ve kullanıcı tanımlı bir aralık kullanarak belirli bir işlemin CPU ve bellek kullanımını gösteren basit bir toplu komut dosyasını inceleyeceğiz.
İlk önce hangi sürecin izlenmesi gerektiğini belirlemeliyiz. Bu, soruna bağlı olarak değişebilir. NetWorker İşlemleri ve Bağlantı Noktaları, işlemlerin adını ve ne yaptıklarını daraltmaya yardımcı olacaktır.
NetWorker sunucusundaki işlemleri aşağıdakileri kullanarak tanımlayabilirsiniz:
- Görev Yöneticisi.
- Görev Listesi
- nsrrpcinfo -p localhost (NetWorker sunucusu veya NetWorker genişletilmiş istemci paketi gerektirir).
1. Aşağıdakileri içeren bir .bat komut dosyası oluşturun:
@echo OFF
: x
wmic os get LocalDateTime /value >> performance_monitor.out
wmic path win32_perfformatteddata_perfproc_process where IDProcess="PID" get Name, PercentProcessorTime, PrivateBytes, IDProcess /format:list >> performance_monitor.out
timeout INTERVAL_IN_SECONDS
goto x
Where:
PID = İzlemek istediğiniz işlemin İşlem Kimliği.
INTERVAL_IN_SECONDS = Raporun her çalıştırılması arasında kaç saniye olduğunu gösteren sayısal değer.
2. Komut dosyasını process-monitor.bat olarak seçtiğiniz bir konuma kaydedin.
3. Bir Yönetici komut istemi açın ve komut dosyasının kaydedildiği dizine cd komutunu yazın.
4. Komut dosyasını çalıştırın.

Bu, komut dosyasının çalıştırıldığı dizinde process-monitor.out dosyasını oluşturur. Dosya şunları içerir:
LocalDateTime=20240307112701.555000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23605248
LocalDateTime=20240307112723.266000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23605248
LocalDateTime=20240307112729.634000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23605248
LocalDateTime=20240307112735.457000-300
IDProcess=6436
Name=nsrd
PercentProcessorTime=0
PrivateBytes=23670784
Burada:
LocalDateTime = YYYYMMDDHHMMSS olarak gösterilen tarih ve saattir.
IDProcess = komut dosyasına girilen PID.
Ad = PID'nin ilişkili olduğu işlemin adı.
PercentProcessorTime = Bu işlemin tüm iş parçacıklarının yönergeleri 100 nanosaniye içinde yürütmek için işlemciyi kullandığı geçen süreyi döndürür.
PrivateBytes = Bu işlemin, diğer işlemlerle paylaşılamayan bellekte ayırdığı geçerli bayt sayısı.
5. Komut dosyasını durdurmak için CTRL+C tuşlarına basarak komut dosyasını durdurmanız veya devam ettirmeniz istenir.
Bu değerler herhangi bir NetWorker kodunun parçası değildir ve aşağıdaki Microsoft makalesinde ayrıntılı olarak açıklanmıştır: https://learn.microsoft.com/en-us/previous-versions/aa394323(v=vs.85)
Linux:
Linux sunucularında, işlemlerin sistem kaynak kullanımını izlemek için top gibi araçları kullanabilirsiniz. Bu KB'de, zaman damgası için çalıştırılabilen ve kullanıcı tanımlı bir aralık kullanarak belirli bir işlemin CPU ve bellek kullanımını gösteren basit bir kabuk komut dosyasını inceleyeceğiz.
1. SSH üzerinden NetWorker sunucusunda oturum açın.
2. Kök kullanıcıya geçin:
sudo su -
3. İzlemek istediğiniz NetWorker işleminin PID sini alın:
ps -ef | grep nsr
NetWorker İşlemleri ve Bağlantı Noktaları
4. Aşağıdakileri içeren bir .sh oluşturun:
vi process_monitor.sh
#!/bin/bash
#Get Date
cat /proc/meminfo > /tmp/`hostname`_monitor-pid.out
cat /proc/cpuinfo >> /tmp/`hostname`_monitor-pid.out
#Monitor PID
while true; do
echo "Press [CTRL+C] to stop the loop."
DATE=$(date +%Y/%m/%d-%H:%M:%S)
echo -e "\\n$DATE" >> /tmp/`hostname`_monitor-pid.out ; ps -p PID -o %cpu,%mem,cmd >> /tmp/`hostname`_monitor-pid.out
# Wait 5 seconds (change as per your discretion)
sleep 5
done
Where:
PID = İzlemek istediğiniz işlemin İşlem Kimliği.
uyku 5 = 5 saniye bekler ve tekrar çalışır, bu aralığı kendi takdirinize göre değiştirebilirsiniz.
5. Komut dosyasını yürütülebilir yapın:
chmod +x process_monitor.sh
6. Komut dosyasını çalıştırın:
./process_monitor.sh
nve:~ # ./process_monitor.sh
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
Press [CTRL+C] to stop the loop.
^C
nve:~ #
7. Şüpheli aşırı kaynak kullanımı oluştuğunda, betiği izlemek veya manuel olarak yeniden oluşturmak istediğiniz süre boyunca betiği çalışır durumda bırakın.
8. Komut dosyasını durdurmak için CTRL+C tuşlarına basarak komut dosyasını durdurmanız veya devam ettirmeniz istenir.
komutunu kullanarak durdurmanız gerekir. Komut dosyası, /tmp altında sistem ana bilgisayar adıyla bir çıktı dosyası oluşturur:
nve:~ # ls -l /tmp | grep monitor-pid
-rw------- 1 root root 2030 Jun 3 12:29 nve_monitor-pid.out
Dosyanın içeriği, komut dosyasında belirtilen işlemin CPU ve bellek kullanımıyla birlikte bir zaman damgası içerir.
nve:~ # tail -12 /tmp/nve_monitor-pid.out
2024/06/03-12:28:54
%CPU %MEM CMD
0.0 0.3 /usr/sbin/nsrd
2024/06/03-12:29:02
%CPU %MEM CMD
0.0 0.3 /usr/sbin/nsrd
2024/06/03-12:29:07
%CPU %MEM CMD
0.0 0.3 /usr/sbin/nsrd
NetWorker (Linux): Linux NetWorker sunucusuna/sunucusundan dosya kopyalama.