tailieunhanh - Managing NFS and NIS 2nd phần 4

các cuộc gọi RPC, quá trình kêu gọi viết () thực hiện RPC cuộc gọi riêng của mình. Một lần nữa, mà không có bất kỳ chủ đề async, hạt nhân vẫn có thể viết các tập tin NFS, nhưng nó phải làm như vậy bằng cách buộc mỗi quá trình khách hàng để thực hiện các cuộc gọi RPC riêng của nó. | Managing NFS and NIS the RPC call the process calling write performs the RPC call itself. Again without any async threads the kernel can still write to NFS files but it must do so by forcing each client process to make its own RPC calls. The async threads allow the client to execute multiple RPC requests at the same time performing write-behind on behalf of the processes using NFS files. NFS read and write requests are performed in NFS buffer sizes. The buffer size used for disk I O requests is independent of the network s MTU and the server or client filesystem block size. It is chosen based on the most efficient size handled by the network transport protocol and is usually 8 kilobytes for NFS Version 2 and 32 kilobytes for NFS Version 3. The NFS client implements this buffering scheme so that all disk operations are done in larger and usually more efficient chunks. When reading from a file an NFS Version 2 read RPC requests an entire 8 kilobyte NFS buffer. The client process may only request a small portion of the buffer but the buffer cache saves the entire buffer to satisfy future references. For write requests the buffer cache batches them until a full NFS buffer has been written. Once a full buffer is ready to be sent to the server an async thread picks up the buffer and performs the write RPC request. The size of a buffer in the cache and the size of an NFS buffer may not be the same if the machine has 2 kilobyte buffers then four buffers are needed to make up a complete 8 kilobyte NFS Version 2 buffer. The async thread attempts to combine buffers from consecutive parts of a file in a single RPC call. It groups smaller buffers together to form a single NFS buffer if it can. If a process is performing sequential write operations on a file then the async threads will be able to group buffers together and perform write operations with NFS buffer-sized requests. If the process is writing random data it is likely that NFS writes will occur in buffer cache-sized .