我想知道,与postgresql的UNIX域套接字连接速度更快,然后从本地主机的TCP连接以高并发速度,如果它,多少?PostgreSQL UNIX域套接字与TCP套接字
41
A
回答
29
UNIX域套接字应该比环回接口上的TCP套接字提供更好的性能(减少数据复制,减少上下文切换),但是我不知道PostgreSQL是否能够提高性能。
我在FreeBSD邮件列表上发现了一个小小的比较:http://lists.freebsd.org/pipermail/freebsd-performance/2005-February/001143.html。
-3
4
据我所知,Unix域套接字(UDS)的工作就像系统管道,并只发送数据,而不是发送校验等附加信息,不使用三次握手的TCP套接字...
PS:也许UDS将更快
5
我相信UNIX域套接字在理论上比环回接口上的TCP套接字提供更好的吞吐量,但实际上差异可能可以忽略不计。
通过UNIX域套接字传输的数据不必上下穿过IP堆栈层。
回复:亚历山大的回答。 AFAIK你不应该在每个方向(即每个read()
或write()
)获得任何超过一个上下文切换或数据拷贝,因此我相信这种差异将会被忽略。 IP栈在层之间移动时不需要复制数据包,但它必须操作内部数据结构来添加和删除更高层的数据包头。
45
Postgres核心开发者Bruce Momjian拥有blogged about this topic。 Momjian表示:“Unix域套接字通信速度显着提高。”他测量了查询网络性能,表明本地域套接字比使用TCP/IP堆栈快33%。
相关问题
- 1. Postgresql和django - Unix域套接字
- 2. Unix域套接字名
- 3. 如何确定打开的套接字是TCP还是unix域套接字?
- 4. 数据报Unix域套接字与Boost.Asio
- 5. 套接字和TCP套接字
- 6. Go net/http unix域套接字连接
- 7. 旋风:与Unix套接字
- 8. Unix域套接字,Udp套接字Objective C使用什么?
- 9. 使用Unix域套接字与TCP套接字建立连接的成本是多少?
- 10. Java TCP套接字
- 11. TCP套接字 - InvalidOperationException
- 12. 从TCP套接字
- 13. TCP套接字连接
- 14. TCP套接字连接
- 15. TCP套接字和连接
- 16. 问题与IO ::套接字TCP连接
- 17. SIP与直接TCP套接字
- 18. PostgreSQL套接字连接
- 19. C++ Unix域套接字工具包
- 20. unix域套接字有多可靠?
- 21. 使用Python xmlrpclib和unix域套接字?
- 22. UNIX域套接字在Java中
- 23. sendto失败UNIX域套接字
- 24. Unix域套接字和选择
- 25. Linux上的unix域套接字?
- 26. ZeroMQ IPC Unix域套接字数控
- 27. UNIX域套接字和可可
- 28. C++ boost unix域套接字使用send_to
- 29. Unix域套接字辅助数据
- 30. unix域套接字tcp_nodelay设置
编写的上下文是'postgresql':在这种情况下,关于连接到本地数据库的两种方式,这是一个非常具体的问题。 – reedstrm 2009-02-23 19:52:04