linux - Socket IO是否涉及到Disk IO?

标签 linux file sockets io

如果一个进程通过套接字向同一台机器上的另一个进程发送数据,那么在传输过程中发生磁盘读/写的可能性有多大?似乎有一个套接字文件类型,如果有可用内存,这些文件是否保证在内存中?

最佳答案

不直接。 TCP/UDP 网络套接字、本地主机或 UNIX 域套接字将在内存中运行。 UNIX 域套接字通常是除了使用模块进入内核空间之外最快的选择。

本地主机管道上的套接字几乎与用户空间和内核空间之间来回的几个 memcpy 一样简单。在 TCP 情况下,您有堆栈开销。

文件和套接字都共享描述符表的内核抽象,但这并不意味着一个实际的文件。

当然,由于您的交易,数据库可能会触发一些写入日志的操作。

关于linux - Socket IO是否涉及到Disk IO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26568562/

相关文章:

c - 什么语言允许我与操作系统的内核交互

linux - 如何在主机本地存储 Elasticsearch 数据?

linux - lpsolve库动态链接

android - 创建在线游戏的最佳方法?

c++ - 处理套接字断开连接。 boost/Winsock

linux - SSH端口转发

java - 使用 jax-rs 发送临时文件

java - 如何以编程方式重命名 Google 存储中的文件夹?

java - 如何在java中从命令提示符提示 "open file window"?

C (Linux) 检查套接字