NetWorker: busy Linux NetWorker sunucusu, "nsrd RPC critical Unable to accept client connection: Çok fazla açık dosya
Summary: Meşgul bir Linux NetWorker sunucusu şu mesajı veriyor: "nsrd RPC critical Unable to accept client connection: Çok fazla açık dosya
Symptoms
Aşağıdakiler dahil olmak üzere NetWorker sunucusu yanıt vermez hale gelir:
- NMC konsolu bir ilerleme çubuğunda duruyor
- Komutta
nsradminKomut döndürülmüyor - Komutta
nsrwatchgeri dönmüyor - İstemciler bağlantılarını kaybeder
Linux için NetWorker sunucusundaki daemon'lar çok düşük bir açık dosya sınırıyla başlar. Bunun nedeni, daemon'ların başlangıç sırasında işlem başına sınırları devralmamasıdır. Kullanılan limit 1024'e geri döner. Bu, daha büyük veri bölgelerinde yetersiz olabilir.
Cause
NetWorker sunucusundaki açık dosya sınırı çok düşük.
- nsrd için PID yi alma
$ ps aux | grep nsrd | grep -v grep | grep -v disp | awk '{ print $2; }'
4021
-
PID, içindeki yolun bir parçasıdır
/proc/<nsrd_PID>/limitsile gözden geçirmek içincatkomuttan:
$ cat /proc/4021/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 63833 63833 processes Max open files 1024 1024 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 63833 63833 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 $
Resolution
NetWorker hizmetleri başlamadan önce aşağıdaki ortam değişkenini etkinleştirerek ağır yüklere sahip NetWorker sunucuları için ayrı bir başlangıç komut dosyası oluşturun:
Tam işletim sistemi düzeyinde ayarlamak için:
Dosya tanımlayıcılarını açın: Açık dosya tanımlayıcıları parametresini minimum olarak değiştirin:
- 8192 (küçük NetWorker ortamı)
- 16384 (orta NetWorker ortamı)
- 32768 (büyük NetWorker ortamı)
Küçük, orta veya büyük NetWorker sunucusu tanımları, NetWorker Performans Optimizasyon ve Planlama Rehberi'nde bulunabilir.
Maks. Açık Dosya
Linux NetWorker sunucusuna şunu ekleyin: ulimit -n 8192 İçinde .bash_profile dosyaya dokunun ve geçerli oturumu yeniden başlatın.
İşlem başına minimum ve maksimum dosya tanımlayıcılarını ayarlamak için: Red Hat 7, SLES 12, SLES 15
prlimit --pid <pid_of_the_process> --nofile=<min_limit>:<max_limit>Example:prlimit --pid 12345 --nofile=1024:4096
İşlem başına minimum ve maksimum dosya tanımlayıcılarını ayarlamak için: Red Hat 6
echo -n "Max open files=min_limit:max_limit" > /proc/pid_of_the_process/limitsExample:echo -n "Max open files=4096:16384" > /proc/1208/limits
TCP Parametreleri
NetWorker sunucusu ağır bir yükle çalıştığında (sunucu uygulama bağlantı noktalarında çok sayıda soket isteğiyle eş zamanlı olarak çalıştığında) aşağıdaki TCP parametrelerini ekleyin:
- Bir Linux NetWorker sunucusunda, aşağıdaki TCP parametrelerini
/etc/sysctl.confdosyasını açın vesysctl --systemkomuttan:net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 15000 65535 net.core.somaxconn = 1024 - Bir Linux NMC sunucusunda, NetWorker sunucusu ağır yüklerle çalıştırıldığında Postgres veritabanı bağlantısı sağlamak için file-max değerini 65536 olarak güncelleyin:
echo 65536 > /proc/sys/fs/file-max