Có thể có bất kỳ sự khác biệt nào về tốc độ trong một lệnh sao chép đơn giản của một bản sao đối với một tệp lớn (2GB) giữa thực thi SSH và cục bộ?


0

Kịch bản ví dụ:
- Máy Linux (Tôi nghĩ Hệ điều hành không làm phiền).
- Máy chủ OpenSSH .
- Nguồn tệp lớn trong đĩa cứng, khoảng 2 GB (Tôi nghĩ rằng SSD hoặc HD cổ điển cũng không làm phiền).
- Đích đến của tệp: một ổ đĩa USB (nhanh vừa phải 2.0) (Tôi nghĩ 3.0 hoặc thậm chí 1.0 cũng không làm phiền).

Tôi sẽ đặt hàng đơn giản:

cp MyBigFile.iso /media/pendrive

Các ổ đĩa được cắm vào cùng một máy.
Hai trường hợp:

  1. Shell cục bộ (tôi ngồi trên máy và cpthực hiện) thực hiện lệnh sao chép tệp lớn.
  2. SSH shell (Tôi đi đến một máy tính khác trên cùng mạng LAN và đăng nhập qua máy khách SSH) sao chép từ xa tệp lớn.

Liệu nó có ý nghĩa gì để mong đợi bất kỳ sự khác biệt về tốc độ? Tại sao?

Tôi nghĩ rằng, trên thực tế, khi bản sao bao gồm nhiều tệp nhỏ , giao tiếp (đối với vỏ SSH) giữa máy chủ và máy khách có thể thêm nhiều độ trễ nhỏ (hãy thoải mái sửa lỗi logic này, nếu bạn nghĩ tôi sai), nhưng Tôi không chắc chắn về những người lớn.

(Vui lòng phản đối về các tình huống "không làm phiền" của tôi ở trên nữa.)


1
Tôi nghi ngờ nếu bạn đang sao chép các tập tin từ máy cục bộ vào ổ đĩa bút được cắm vào máy nói trên thì sự khác biệt duy nhất về tốc độ sẽ là thời gian để máy nhận lệnh sao chép (ssh bị chậm hơn). Tôi có thể sai (do đó chỉ là một nhận xét) và sẽ tìm thấy câu trả lời thú vị.
Matthew Williams

Cùng một máy tính, @MatthewWilliams. Tôi đã chỉnh sửa câu hỏi để hiển thị nó, cảm ơn.
Sopalajo de Arrierez

Vâng, tôi đã giả sử đây là trường hợp. Cảm ơn đã làm rõ mặc dù.
Matthew Williams

Câu trả lời:


2

Khi bạn ssh vào một máy và chạy cp fromFile toFile, bản sao đó chạy hoàn toàn trên máy từ xa. Nó không giao tiếp qua ssh để làm bản sao. Trong thực tế, không có bất kỳ đối số nào, cp thậm chí sẽ không báo cáo tiến trình cho phiên ssh, nó sẽ chỉ hoàn thành và sau đó bạn sẽ thấy lời nhắc.

Nếu bạn đang sao chép nhiều tệp nhỏ và sử dụng cp -v, cp sẽ in tên của mỗi tệp khi nó sao chép nó. In tên sẽ gây ra giao tiếp qua kết nối ssh. Có thể là nếu bạn có kết nối chậm, lệnh cp sẽ in tên tệp nhanh hơn ssh có thể truyền chúng qua dây và có vẻ như sau khi in đủ tên tệp, cp có thể chặn việc ghi vào thiết bị xuất chuẩn.

Tôi chưa bao giờ thực sự thấy điều này xảy ra và tốc độ ổ đĩa luôn là yếu tố hạn chế, nhưng tôi nghĩ về mặt lý thuyết là có thể.


nên không phải là cplệnh báo cáo tiến độ cho phiên SSH ngay cả đối với một tập tin bản sao kích thước dài? Nếu có, báo cáo tiến độ này, khi được thực hiện thường xuyên, sẽ không làm chậm bất cứ điều gì chuyển giao?
Sopalajo de Arrierez

1
Nếu bạn chạy cpkhông có cờ, nó báo cáo không có tiến triển gì. Nó chỉ đơn giản là chạy âm thầm, và cuối cùng kết thúc. Nếu bạn chạy cp -v, nó sẽ báo cáo tên tệp của mỗi tệp mà nó sao chép, nhưng tên tệp nhỏ. Cách mọi thứ hoạt động, cpsẽ được ghi vào bộ đệm và sshsẽ được đọc từ bộ đệm. Cách duy nhất cpsẽ chậm lại là nếu bộ đệm đó được điền trước khi sshcó thể gửi thông tin qua mạng.
Alan Shutko
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.