2012-01-20 33 views
9

Có bất kỳ tăng tốc hệ điều hành (Linux) nào khi viết một bộ đệm byte cố định cho nhiều bộ mô tả tệp không? Khi viết nhiều bộ đệm cho một bộ mô tả tập tin có thể sử dụng writev(2), vì vậy tôi tự hỏi nếu có bất kỳ tương tự này hoặc nó phải được thực hiện bởi nhiều cuộc gọi sys.Viết cho nhiều tập tin mô tả

Trả lời

2

Tôi không biết syscall nào trên Linux. Danh sách đầy đủ của họ được đưa ra trong trang man page syscalls(2).

Và tôi sẽ không bận tâm nhiều đến thế. Để truy cập tệp, nút cổ chai thực là đĩa ...

+1

Ngoại trừ việc viết không đi vào đĩa; tất cả 'write' làm là sao chép dữ liệu vào một bộ đệm trong hạt nhân. (Có những lựa chọn để thay đổi điều này, nhưng đây là hành vi mặc định.) Và câu hỏi của OP là một câu hỏi hay, vì nếu có câu hỏi như vậy, nó sẽ có nghĩa là một bản sao, và có lẽ chỉ có một bộ đệm trong nhân (ít tài nguyên hơn) được sử dụng trong hạt nhân). –

+0

Tôi đồng ý và tôi biết điều đó, nhưng khi bạn có đủ RAM để tất cả các tệp nóng vừa với nhau, bạn không nên lo lắng nhiều. Tôi không nghĩ rằng hạt nhân có thể chia sẻ các phân đoạn của các tập tin giữa các tập tin riêng biệt. –

+0

@JamesKanze: Tôi không chắc chắn rằng bộ đệm chia sẻ sẽ hoạt động. Nếu bạn có hai tệp, một tệp trên SSD và một tệp trên một ổ đĩa mạng ở xa thì SSD có nên đợi ổ đĩa mạng không? Tùy thuộc vào tình hình, bạn có thể muốn có ít nhất một tập tin được viết thành công thay vì hai nửa ghi. –

0

Kết hợp vmsplicetee nên thực hiện những gì đã yêu cầu, tuy nhiên, nhiều rào cản người dùng/không gian hạt nhân chỉ được vượt qua một lần.

+0

Cảm ơn bạn, nhưng nó chỉ dành cho đường ống. – Cartesius00

Các vấn đề liên quan