为了账号安全,请及时绑定邮箱和手机立即绑定

把 unix socket 建在 /dev/shm 会提高性能么?

把 unix socket 建在 /dev/shm 会提高性能么?

吃鸡游戏 2019-03-30 11:38:05
我发现很多中文的教程都说这样可以提高性能,但找不到英文的资料支持这一观点。例如:http://blog.chinaunix.net/uid-26156216-id-3502458.html我们可以直接在/dev/shm下使用创建文件,而不用再mkfs格式化文件系统,因为都是在内存中操作。所以/dev/shm下的文件I/O速度相对很快利用这点。我们可以把php.socket放在/dev/shm下加速工作效率以及:https://blog.linuxeye.com/364.htmlSocket是使用unixdomainsocket连接套接字/dev/shm/php-cgi.sock(很多教程使用路径/tmp,而路径/dev/shm是个tmpfs,速度比磁盘快得多)
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

理论上来说创建、检索和删除会快一点,数据传输没有差别。实际上嘛,你把socket放/dev/shm下就是找抽,那么一点点差别别说人了,一般连程序都察觉不到。那个是放共享内存之类的东西用的。
socket建议存放地址:
/run:这个是比较新的位置,专门用于存放运行时的东西,比如socket、pidfile、
lockfile等,是tmpfs。FreeDesktop还专门给每用户弄了目录(/run/user/$UID)。
/tmp:这个一般也是tmpfs,也可以是普通文件系统。不过长期不使用的文件可能被清
除(systemd会定期清理)。
「抽象套接字」(abstractsocket),即地址的第一个字符为NUL字符的套接字。不
对应到文件系统的。目前只有Linux支持。
                            
查看完整回答
反对 回复 2019-03-30
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

从某种程度上来说应该快一点因为如果把socket建立在普通的文件系统上,创建、修改inode数据,会涉及到磁盘寻道.而在tmpfs上,由于是内存,这些操作的overhead会小些.
不过整个socket的数据还是会在内存缓冲区里存储,所以socket的数据传输速度上应该不会有差别。
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 992 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信