Bedeutung von FDSize in / proc / PID / status

5548
Adam Matan

Ich suche nach einer Möglichkeit, das offene FD-Limit unter Ubuntu-Rechnern herauszufinden, das nicht vorhanden ist /proc/PID/limits, nämlich EC2-Rechner .

Ich habe nachgeschaut /proc/PID/limitsund den Eintrag gefunden FDSizemit Werten wie:

FDSize: 256 FDSize: 512 

Wie kann ich aus diesem Wert auf die maximal zulässige Anzahl offener Dateideskriptoren schließen?

3

3 Antworten auf die Frage

2
Adam Matan

Nein, es zeigt nicht das Limit - nur die Nutzung.

>>> import resource >>> resource.setrlimit(resource.RLIMIT_NOFILE, (10000, 10000)) >>> resource.getrlimit(resource.RLIMIT_NOFILE) (10000, 10000) 

Jetzt:

>>> for i in range(5000): ... f=open('/tmp/delme'+str(i),'w') ... fs.append(f) 

Und:

laptop:/proc/20160$ cat status ... FDSize: 8192 ... 

Der Wert wurde nicht geändert, nachdem das Limit geändert wurde, unmittelbar nachdem die Dateien erstellt wurden. Es bedeutet, dass es die tatsächliche Nutzung misst, nicht die Grenzen.

1
nagul

Afaik, unter Linux wird das pro-Limit von offenen Dateien über den ulimitBefehl gesteuert . Von man ulimit:

NAME ulimit - Begrenzung der Dateigröße festlegen oder melden  BESCHREIBUNG Das Dienstprogramm ulimit muss das Schreiblimit für die Dateigröße festlegen oder melden  Dateien, die von der Shell und ihren untergeordneten Prozessen (Dateien  beliebiger Größe kann gelesen werden). Nur ein Prozess mit entsprechenden Privilegien kann das Limit erhöhen. 

Auf meinem System:

$ ulimit -aS | grep "open files" open files (-n) 1024  $ ulimit -aH | grep "open files" open files (-n) 1024 

Das systemweite Limit wird in / proc / sys / fs / file-max gespeichert

$ cat /proc/sys/fs/file-max 305018 

Der Linux HTTP Benchmarking Abschnitt über tuning Dateideskriptors Grenzen auf Linux hat weitere Informationen.

Mir ist nicht ganz klar, ob Sie genau das gesucht haben. Beantwortet das deine Frage?

0
c4f4t0r

von man proc: "* FDSize: Anzahl der aktuell zugewiesenen Dateideskriptor-Slots." Dies ist die Anzahl der "struct-Datei" in der Dateideskriptortabelle eines Prozesses.