访问 localhost 的情况下, Unix Socket 会比 TCP 127.0.0.1 更快(资源 overhead 更少)

2015-07-04 12:17:20 +08:00
 Livid
http://lists.freebsd.org/pipermail/freebsd-performance/2005-February/001143.html

通过 Unix Socket 访问本地的 Redis 可以提供更好的性能:

http://redis.io/topics/benchmarks
14121 次点击
所在节点    DevOps
28 条回复
mongodb
2015-07-04 12:29:48 +08:00
最开始接触Nginx+PHP-FPM的时候教程都是127.0.0.1:xxxx 突然有一天都在用socket方式了,理由大致类似。
kn007
2015-07-04 12:30:32 +08:00
早就用socket了
mysql
php
redis
memcached
全部都是用socket
kn007
2015-07-04 12:31:21 +08:00
端口毕竟tcp,大流量毕竟还是过多动作了。
tonyluj
2015-07-04 12:57:50 +08:00
fripSide
2015-07-04 13:06:19 +08:00
怎么用 Unix Socket访问localhost?
ryd994
2015-07-04 13:26:34 +08:00
毕竟即使是lo,还是会有TCP栈处理,握手流控到少不了
lo也不是完全没用,在多个chroot的情况下,socket的设置比较麻烦
小负载没什么区别

@fripSide socket是特殊文件,在配置里指定一个路径即可
一般在/run /var/run 或者 /var/lib/ 下,你参考其他软件就好,另外大多数配置里会有默认选项可以参照
注意设置好权限
SoloCompany
2015-07-04 13:30:24 +08:00
1. unix pipline / domain socket 应该都是同意回事
2. java 支持不佳
3. windows 不支持,跨平台应用编写不方便

所以,如果不是证明这个造成了瓶颈,没必要折腾
noli
2015-07-04 13:46:43 +08:00
unix socket 直接就不是 TCP/IP 协议栈吧……代价肯定小得多。
way2exluren
2015-07-04 13:50:10 +08:00
unix domain socket属于进程间通信。
127.0.0.1是标准协议流程。
上面的不过协议栈。
Bluecoda
2015-07-04 16:56:55 +08:00
一直都是unix socket,也很早就知道unix socket比tcp socket的性能要高很多
yuankui
2015-07-04 18:52:21 +08:00
差别右多大?
humiaozuzu
2015-07-04 18:56:14 +08:00
局域网间的机器怎么办
fripSide
2015-07-04 19:14:19 +08:00
@ryd994 我配置saltstack之类的貌似用到过sock文件。但是我想知道题主说的这个,怎么在浏览器上访问的localhost上使用Unix Socket ?
decken
2015-07-04 19:16:40 +08:00
apache哭晕在厕所,2.4.7之后的版本才支持该特性
realpg
2015-07-04 22:00:36 +08:00
真不敢相信 @Livid 大神才知道这个……学unix socket是啥的时候了解的第一条就是针对本机连接最大的优势就是想比TCP/IP开销 极低 极低 极低 重三遍
zonghua
2015-07-04 22:45:51 +08:00
@realpg 开了svn之后路由映射的jetty服务不能访问怎么办?localhost:9090/可以访问
barbery
2015-07-04 23:19:36 +08:00
大部分情况下都是unix socket速度较快,但是比较奇怪的是,使用golang的话,普通的监听端口会比socket快很多
dallaslu
2015-07-04 23:20:15 +08:00
用 TCP 可以方便处理集群配置,是么?
kn007
2015-07-04 23:22:15 +08:00
@dallaslu 是的,负载均衡什么的,需要tcp。多台服务器处理不同功能的,也需要tcp

但是所有业务程序在同一台机子,那么用unix socket妥妥的。
dallaslu
2015-07-04 23:32:59 +08:00
@kn007 另有说法说,Linux 已经为 localhost 的 TCP 连接做了优化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/203269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX