Giả sử tôi muốn tìm tất cả các kết quả khớp trong tệp văn bản nén:
$ gzcat file.txt.gz | pv --rate -i 5 | grep some-pattern
pv --rate
được sử dụng ở đây để đo thông lượng đường ống. Trên máy của tôi, tốc độ khoảng 420Mb / giây (sau khi giải nén).
Bây giờ tôi đang cố gắng thực hiện grep song song bằng cách sử dụng GNU song song.
$ gzcat documents.json.gz | pv --rate -i 5 | parallel --pipe -j4 --round-robin grep some-pattern
Bây giờ thông lượng được giảm xuống ~ 260Mb / s. Và parallel
bản thân quá trình quan tâm hơn là sử dụng rất nhiều CPU. Nhiều hơn grep
các quy trình (nhưng ít hơn gzcat
).
EDIT 1 : Tôi đã thử các kích thước khối khác nhau ( --block
), cũng như các giá trị khác nhau cho -N
/ -L
tùy chọn. Không có gì giúp tôi ở điểm này.
Tôi đang làm gì sai?
--pipe
là không hiệu quả? Tôi có nghĩa là nó là một số loại vấn đề cơ bản hoặc nhiều hơn thực hiện cụ thể.