Tôi hiện đang gặp sự cố với việc dd
được gọi với một tệp thưa thớt là input ( if
) và một tệp là output ( of
) với conv=sparse
. dd
dường như chỉ sử dụng một lõi của CPU ( Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
4 lõi + 4 Intel Hyperthread) (100% của 1 lõi), vì vậy tôi đã tự hỏi liệu có thể song song hóa được không dd
. Tôi đã từng
- Nhìn vào
info dd
vàman dd
dường như có chức năng tích hợp trong phiên bản corutils 8.23 - kiểm tra
sgp_dd
từsg3-utils
gói (không hiểu liệu nó có phù hợp với nhu cầu của tôi không), nhưng dường như không thể xử lý các tệp thưa thớt dcfldd
dường như không có khả năng song song
AFAIK
- một phiên bản / ngã ba nâng cao với việc xử lý nội bộ các phần chương trình trong nhiều luồng (tránh thay đổi bối cảnh giết chết hiệu năng I / O) được ưu tiên hơn
- một giải pháp với GNU
parallel
chạy cục bộ được ưa thích hơn - một sniplet mã tùy chỉnh (có thể chưa được kiểm tra)
Làm thế nào để tránh CPU là nút cổ chai của hoạt động chuyên sâu I / O? Tôi muốn chạy lệnh trên Ubuntu 14.04 với Linux 3.13 và xử lý hình ảnh đĩa tệp thưa với nó trên bất kỳ hệ thống tệp nào hỗ trợ tệp thưa thớt (ít nhất là giải pháp không nên bị ràng buộc với một hệ thống tệp cụ thể).
Bối cảnh: Tôi đang cố gắng tạo một bản sao của tệp thưa 11TB (chứa khoảng 2TB dữ liệu) trên zfs (phiên bản không ổn định của zfsonlinux 0.6.4, có thể là lỗi và nguyên nhân gây ra tắc nghẽn CPU (cuối cùng là tìm kiếm lỗ chậm). Điều đó không nên thay đổi bất cứ điều gì cho câu hỏi làm thế nào để song song hóa dd (theo cách rất chung chung).
dd
hog CPU theo mặc định do kích thước khối nhỏ. làm cho nó lớn hơn, giống như bs=1M
.