我想知道,與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