PIPESZ(1)

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

REZUMAT

pipesz [opțiuni] [--set dimensiunea] [--] [comanda [argument] ...]

pipesz [opțiuni] --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.

Operația --set stabilește dimensiunile memoriilor tampon ale conductelor. În cazul în care este specificată, aceasta trebuie să fie specificată cu o dimensiune explicită. În caz contrar, aceasta este implicită, iar dimensiunea este citită din /proc/sys/fs/pipe-max-size. Nucleul poate ajusta dimensiunea așa cum este descris în fcntl(2). Pentru a vedea dimensiunile reale ale memoriilor tampon definite, utilizați opțiunea --verbose. Dacă nu sunt specificate nici --file, nici --fd, --set acționează la ieșirea standard.

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
    Stabilește dimensiunea memoriilor tampon ale conductelor, în octeți. Această opțiune poate fi sufixată cu K, M, G, KiB, MiB sau GiB pentru a indica multiplii de 1024. În acest caz, sunt acceptate valorile fracționare. Sufixele suplimentare sunt acceptate, dar este puțin probabil să fie utile. Dacă această opțiune nu este specificată, se utilizează o valoare implicită, așa cum este descris mai sus. În cazul în care această opțiune este specificată de mai multe ori, se emite un avertisment și se utilizează doar ultima dimensiune specificată. Ca un comportament special, dacă nu sunt specificate nici --file, nici --fd, ieșirea standard este ajustată. Specificarea acestei opțiuni în combinație cu --get constituie o eroare.

-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 număr
    Stabilește dimensiunea memoriei tampon a conductei sau FIFO-ului corespunzător descriptorului de fișier număr. Puteți specifica această opțiune de mai multe ori pentru a afecta diferiți descriptori de fișiere și puteți face acest lucru în combinație cu --file. Sunt furnizate opțiuni prescurtate pentru cazurile obișnuite de fd 0 (stdin, intrarea standard), fd 1 (stdout, ieșirea standard) și fd 2 (stderr, ieșirea de eroare standard). Acestea ar trebui să fie suficiente în majoritatea cazurilor.

-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
    Nu raportează erorile care nu sunt fatale la ieșirea de eroare standard. Această opțiune nu afectează ieșirea normală a --get, --verbose, --help sau --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

CONSULTAȚI ȘI

pipe(7)

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți

DISPONIBILITATE

Comanda pipesz face parte din pachetul util-linux care poate fi descărcat de la