C/C+中文件描述符的有效使用+; 我使用C++从我的客户端系统备份文件。每一秒,文件都会从我的客户机中溢出,我必须为每个要写入服务器的文件获取文件描述符。有时我在一分钟内甚至可以得到10K个文件,那么我如何真正利用文件描述符高效地编写多个文件呢 我有一个C++套接字侦听器,每个客户端机器连接到服务器并开始上传文件。是否可以使用有限的文件描述符写入多个文件。我已经试着将所有文件写入一个大文件,但对于我写入的每个文件,我都会在大文件中记录文件的结束字节和开始字节。这将是一项非常艰巨的工作
我希望能够以高性能写入文件,同时确保磁盘安全。有什么想法可以分享吗?看来你应该把请求排成队列 这样,您就可以有有限数量的工作人员(例如,16名,具体取决于系统上的硬件)来实际传输文件,并让其余的工作人员等待 这可能会提高吞吐量和性能,因为C/C+中文件描述符的有效使用+; 我使用C++从我的客户端系统备份文件。每一秒,文件都会从我的客户机中溢出,我必须为每个要写入服务器的文件获取文件描述符。有时我在一分钟内甚至可以得到10K个文件,那么我如何真正利用文件描述符高效地编写多个文件呢 我有一个C++套接字侦听器,每个客户端机器连接到服务器并开始上传文件。是否可以使用有限的文件描述符写入多个文件。我已经试着将所有文件写入一个大文件,但对于我写入的每个文件,我都会在大文件中记录文件的结束字节和开始字节。这将是一项非常艰巨的工作,c++,file-descriptor,C++,File Descriptor,我希望能够以高性能写入文件,同时确保磁盘安全。有什么想法可以分享吗?看来你应该把请求排成队列 这样,您就可以有有限数量的工作人员(例如,16名,具体取决于系统上的硬件)来实际传输文件,并让其余的工作人员等待 这可能会提高吞吐量和性能,因为 它消除了线程调度开销 它消除了资源瓶颈(fd+缓冲区分配) 它不会同时命中磁盘(在旧式硬件上(即最常旋转磁盘),如果导致重复磁盘搜索,则会导致性能严重下降 免责声明:您的文件系统/操作系统可能通过重新安排磁盘写入(电梯/完全公平队列和其他算法)来共同限制/
- 它消除了线程调度开销
- 它消除了资源瓶颈(fd+缓冲区分配)
- 它不会同时命中磁盘(在旧式硬件上(即最常旋转磁盘),如果导致重复磁盘搜索,则会导致性能严重下降
- 免责声明:您的文件系统/操作系统可能通过重新安排磁盘写入(电梯/完全公平队列和其他算法)来共同限制/减少这种影响
- 无论如何,在将顺序上载写入共享卷时,通常在以下情况下带宽使用将达到最佳状态:
sum(upload rates) ~= effective disk write bandwitdh
- 查看操作系统的
参数,以执行backlog
功能listen
- 看看实现 另请参见或其他搜索引擎
- 它消除了线程调度开销
- 它消除了资源瓶颈(fd+缓冲区分配)
- 它不会同时命中磁盘(在旧式硬件上(即最常旋转磁盘),如果导致重复磁盘搜索,则会导致性能严重下降
- 免责声明:您的文件系统/操作系统可能通过重新安排磁盘写入(电梯/完全公平队列和其他算法)来共同限制/减少这种影响
- 无论如何,在将顺序上载写入共享卷时,通常在以下情况下带宽使用将达到最佳状态:
sum(upload rates) ~= effective disk write bandwitdh
- 查看操作系统的
参数,以执行backlog
功能listen
- 看看实现 另请参见或其他搜索引擎