Scroll to navigation

PIPESZ(1) Comenzi utilizator PIPESZ(1)

NUME

pipesz - stabilește sau examinează dimensiunile memoriilor tampon ale conductelor și FIFO

REZUMAT

pipesz [options] [--set size] [--] [command [argument...]]

pipesz [options] --get

DESCRIERE

Conductele și FIFO-urile (conductele cu nume) mențin o memorie tampon internă utilizată pentru transferul de date între capătul de citire și cel de scriere. În unele cazuri, este posibil ca dimensiunea implicită a acestui tampon intern să nu fie adecvată. Acest program oferă facilități pentru a stabili și examina dimensiunea acestor memorii tampon.

The --set operation sets pipe buffer sizes. If it is specified, it must be specified with an explicit size. Otherwise, it is implied and the size is read from /proc/sys/fs/pipe-max-size. The kernel may adjust size as described in fcntl(2). To see the actual buffer sizes that get set, use the --verbose option. If neither --file nor --fd are specified, --set acts on standard output.

Operația --set permite executarea unei comenzi opționale după stabilirea dimensiunilor memoriei tampon de conductă. Această comandă este executată cu conductele ajustate.

Operația --get produce date într-un format tabelar. Prima coloană este numele conductei, așa cum a fost pasat la pipesz. Descriptorii de fișiere se numesc „fd N”. A doua coloană este dimensiunea, în octeți, a memoriei tampon interne a conductei. A treia coloană este numărul de octeți necitit în prezent din conductă. Coloanele sunt separate de tabulatoare ("\t", ASCII 09h). În cazul în care se specifică --verbose, se emite, de asemenea, un antet descriptiv. Dacă nu sunt specificate nici --file, nici --fd, --get acționează la intrarea standard.

Cu excepția cazului în care este specificată opțiunea --check, pipesz nu iese dacă întâlnește o eroare în timp ce manipulează un fișier sau un descriptor de fișier. Acest lucru permite ca pipesz să fie utilizat în mod generic fără teama de a întrerupe execuția conductelor în cazul în care tipul anumitor fișiere ar fi schimbat ulterior. Pentru o perturbare minimă, opțiunea --quiet împiedică emiterea de avertismente în aceste cazuri.

Nucleul impune limite asupra cantității de spațiu de memorie tampon pentru conducte pe care o pot utiliza procesele neprivilegiate, dar consultați ERORI mai jos. De asemenea, nucleul va refuza să micșoreze o memorie tampon a unei conducte în cazul în care acest lucru ar duce la pierderea datelor stocate în memoria tampon. Pentru detalii suplimentare, consultați pipe(7).

pipesz acceptă specificarea mai multor opțiuni scurte consecutiv, în modul obișnuit getopt(3). Primul argument fără opțiune este interpretat ca fiind comanda. Dacă comanda ar putea începe cu „-”, utilizați „--” pentru a o separa de argumentele pentru pipesz. În scripturile de tip shell, este o bună practică să se utilizeze „--” atunci când este vorba de extinderea parametrilor. pipesz însuși nu citește de la intrarea standard și nu scrie la ieșirea standard decât dacă sunt specificate --get, --help sau --version.

OPȚIUNI

-g, --get

Raportează dimensiunea memoriilor tampon ale conductelor la ieșirea standard și iese. Ca un comportament special, dacă nu sunt specificate nici --file, nici --fd, se examinează intrarea standard. Este o eroare să se specifice această opțiune în combinație cu --set.

-s, --set dimensiunea

Set the size of the pipe buffers, in bytes. This option may be suffixed by K, M, G, KiB, MiB, or GiB to indicate multiples of 1024. Fractional values are supported in this case. Additional suffixes are supported but are unlikely to be useful. If this option is not specified, a default value is used, as described above. If this option is specified multiple times, a warning is emitted and only the last-specified size is used. As a special behavior, if neither --file nor --fd are specified, standard output is adjusted. It is an error to specify this option in combination with --get.

-f, --file ruta

Stabilește dimensiunea memoriei tampon a FIFO-ului sau a conductei din ruta, în raport cu directorul de lucru curent. Puteți specifica această opțiune de mai multe ori pentru a afecta fișiere diferite și puteți face acest lucru în combinație cu --fd. În general, această opțiune este utilizată cu FIFO-uri, dar va funcționa și cu conducte anonime, cum ar fi cele găsite în /proc/PID/fd. Modificările aduse dimensiunii memoriei tampon a FIFO-urilor nu sunt păstrate de la o repornire a sistemului la alta.

-n, --fd number

Set the buffer size of the pipe or FIFO corresponding to file descriptor number. You may specify this option multiple times to affect different file descriptors, and you may do so in combination with --file. Shorthand options are provided for the common cases of fd 0 (stdin), fd 1 (stdout), and fd 2 (stderr). These should suffice in most cases.

-i, --stdin

Abreviere pentru --fd 0.

-o, --stdout

Abreviere pentru --fd 1.

-e, --stderr

Abreviere pentru --fd 2.

-c, --check

Iese, fără a executa comanda, în caz de eroare în timpul manipulării unui fișier sau a unui descriptor de fișier. Comportamentul implicit în cazul în care acest lucru nu este specificat este de a emite un avertisment la ieșirea de eroare standard și de a continua.

-q, --quiet

Do not report non-fatal errors to standard error. This option does not affect the normal output of --get, --verbose, --help, or --version.

-v, --verbose

Dacă este specificată cu --get, pipesz va emite un antet descriptiv deasupra tabelului. În caz contrar, dacă este specificată, pipesz va afișa la ieșirea de eroare standard dimensiunile actuale ale memoriilor tampon stabilite de nucleu.

-h, --help

Afișează acest mesaj de ajutor și iese.

-V, --version

Afișează versiunea și iese.

EXEMPLE

pipesz dd if=fișier bs=1M | ...

Rulează dd(1) cu o conductă de ieșire standard extinsă, permițându-i să evite schimbările de context atunci când se face o legătură între blocuri mari.

pipesz -s1M -cf /run/serviciul-meu.fifo

Stabilește dimensiunea memoriei tampon a conductei unui serviciu FIFO la 1.048.576 octeți. În cazul în care dimensiunea memoriei tampon nu a putut fi stabilită, pipesz iese cu o eroare.

echo hello | pipesz -g

Afișează dimensiunea conductei utilizate de shell pentru a transmite datele de intrare către pipesz. Deoarece pipesz nu citește intrarea standard, este posibil să raporteze, de asemenea, 6 octeți necitiți în conductă, în funcție de timpii relativi.

find /proc/PID/fd -exec pipesz -gqf '{}' ';'

Afișează dimensiunea și numărul de octeți necitiți ai tuturor conductelor utilizate de PID. În cazul în care unele conducte sunt în mod obișnuit pline, pipesz ar putea fi capabilă să atenueze un blocaj de procesare.

NOTE

Linux suportă ajustarea dimensiunii memoriilor tampon ale conductelor începând cu nucleul 2.6.35. Această versiune a introdus, de asemenea, /proc/sys/fs/pipe-max-size.

Acest program utilizează fcntl(2) F_GETPIPE_SZ/F_SETPIPE_SZ pentru a obține și a stabili dimensiunile memoriilor tampon ale conductelor.

Acest program utilizează ioctl(2) FIONREAD pentru a raporta cantitatea de date necitite din conducte. Dacă dintr-un motiv oarecare acest lucru eșuează, cantitatea de date necitite este raportată ca fiind 0.

ERORI

Înainte de Linux 4.9, unele erori afectează modul în care sunt aplicate anumite limite de resurse atunci când se stabilesc dimensiunile memoriilor tampon pentru pipe. Consultați pipe(7) pentru detalii.

AUTORI

Nathan Sharp <nwsharp@live.com>

CONSULTAȚI ȘI

pipe(7)

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor <https://github.com/util-linux/util-linux/issues>.

DISPONIBILITATE

Comanda pipesz face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

2026-03-03 util-linux 2.42-rc1