Tôi cũng đã đăng câu hỏi này trên runsubmit.com, một trang web bên ngoài mạng SE cho các câu hỏi liên quan đến SAS.Tại sao tải lên quá chậm?
Tại nơi làm việc có 2 máy chủ sas tôi sử dụng. Khi tôi chuyển một bộ dữ liệu sas từ một đến khác thông qua tải lên proc, nó đi vào khoảng 2,5MB/s. Tuy nhiên, nếu tôi ánh xạ ổ đĩa trên một máy chủ như một ổ đĩa mạng và sao chép và dán tập tin trên, nó chạy nhanh hơn nhiều, khoảng 80MB/s (trên cùng một kết nối gigabit).
Ai đó có thể đề xuất điều gì có thể gây ra điều này và những gì tôi có thể làm để sửa chữa hoặc giải pháp thay thế?
Ngoài ra còn có một máy chủ thứ ba mà tôi sử dụng không thể ánh xạ ổ đĩa mạng trên hai SAS kia là phương tiện duy nhất có thể truyền tệp từ đó, vì vậy tôi cần một giải pháp dựa trên SAS. Mặc dù chuyển cá nhân từ lần chạy này với tốc độ 2.5MB/s, tôi đã nhận thấy rằng có thể có một số lần chuyển tất cả sẽ song song, mỗi lần chuyển đổi là 2,5MB/giây.
SAS FTP có thông qua tên tệp và bước dữ liệu nhanh hơn việc sử dụng tải lên proc không? Tôi có thể thử điều đó tiếp theo, nhưng tôi không muốn sử dụng điều này - chúng tôi chỉ có SAS 9.1.3, vì vậy SFTP không có sẵn.
Cập nhật - Thông tin chi tiết:
- Tôi đang kết nối với một spawner, và tôi nghĩ rằng nó sử dụng 'SAS mã hóa độc quyền' (dựa trên những gì tôi nhớ lại thấy trong các bản ghi).
- Tải lên là Windows client -> Windows từ xa trong trường hợp đầu tiên và máy khách Unix -> Windows từ xa trong trường hợp thứ hai.
- Các bộ dữ liệu SAS được đề cập được nén (tức là bởi SAS, không phải một số tiện ích nén bên ngoài).
- Tốc độ truyền tải tương tự khi sử dụng tải lên proc để truyền tệp bên ngoài (.bz2) ở chế độ nhị phân.
- Tất cả các máy chủ có mảng đĩa rất nhanh xử lý bởi bộ điều khiển doanh nghiệp cấp (tối thiểu 8 ổ đĩa trong RAID 10)
giải pháp tiềm năng
- Parallel PROC UPLOAD - có khả năng đủ nhanh, nhưng cực kỳ CPU nặng
- PROC COPY - nhanh hơn nhiều so UPLOAD PROC, ít hơn nhiều CPU overhead
- SAS FTP - không an toàn, tốc độ không rõ, chưa biết CPU overhead
Update - kiểm tra kết quả
- Parallel PROC UPLOAD: bao gồm khá nhiều thiết lập * và rất nhiều CPU, nhưng hoạt động khá tốt.
- COPY CHÉP: chính xác cùng tốc độ truyền mỗi phiên như tải lên proc và thời gian CPU được sử dụng nhiều hơn.
- FTP: Giới thiệu nhanh hơn 20 lần, CPU tối thiểu (100MB/s so với 2,5MB/giây cho mỗi lần tải lên song song).
* Tôi bước đầu thử như sau:
phiên địa phương -> phiên từ xa trên máy chủ nguồn -> n phiên từ xa trên máy chủ đích -> tái tổ hợp n mảnh trên máy chủ đích
Mặc dù điều này dẫn đến n chuyển đồng thời, nhưng chúng chạy ở 1/n của tỷ lệ gốc, có thể do một nút cổ chai CPU trên máy chủ nguồn. Để có được nó để làm việc với n lần so với băng thông của một chuyển duy nhất, tôi đã phải thiết lập nó như:
phiên địa phương -> n phiên từ xa trên máy chủ nguồn -> 1 từ xa phiên mỗi trên máy chủ đích - > tái tổ hợp n mảnh trên máy chủ đích đang
SAS FTP
filename source ftp '\dir1\dir2'
host='servername'
binary dir
user="&username" pass="&password";
let work = %sysfunc(pathname(work));
filename target "&work";
data _null_;
infile source('dataset.sas7bdat') truncover;
input;
file target('dataset.sas7bdat');
put _infile_;
run;
Vui lòng cập nhật câu hỏi của bạn với các chi tiết về môi trường máy chủ SAS và cách bạn CONNECT, đặc biệt nếu bạn đang kết nối với một CONNECT Spawner hoặc hoặc một số phương pháp khác. Nếu sử dụng Spawner, hãy tìm hiểu xem nó có đang sử dụng mã hóa hay không. – BellevueBob
Câu hỏi được cập nhật - chi tiết cụ thể nào khác sẽ hữu ích? – user667489
Các tập dữ liệu SAS bạn đang tải lên có bị nén không? Và tôi đoán mọi thứ là Windows, đúng không? Và khi bạn nói rằng bạn đang sao chép từ một máy chủ khác, bạn có nghĩa là bạn đang kết nối với máy chủ B với một phiên SAS/CONNECT từ máy chủ A? – BellevueBob