能不能在 Linux 中分配一个内存空间,然后把 mysql.sock 和 PHP -fpm.sock 放在里面,达到提升速度的效果?

2022-09-21 15:14:46 +08:00
 ililili
2169 次点击
所在节点    程序员
21 条回复
jifengg
2022-09-21 16:18:36 +08:00
"/dev/shm"
请,但是会提高多少速度?以及,提高了什么速度?
ililili
2022-09-21 16:51:42 +08:00
我是这么想的
这俩 sock 是 NGINX 、MySQL 、PHP 三者相互通信的纽带
在内存里的读取速度会比硬盘快
以此提高 LNMP 环境下网站的运行速度
julyclyde
2022-09-21 17:02:00 +08:00
提高不了的,别想了
julyclyde
2022-09-21 17:12:49 +08:00
@ililili 关键问题是:
并没有读什么 /多少内容
ltkun
2022-09-21 17:16:01 +08:00
RamDisk 吗 Linux 支持 tmpfs
Judoon
2022-09-21 17:19:52 +08:00
虽然一切皆文件,但是 socket 是一个特殊的文件
你对 socket 的读写并不是读写磁盘(或者说这个 socket 的存在介质)啊
F12
2022-09-21 17:28:00 +08:00
业务提升远远大于通信的速度
yuanse
2022-09-21 17:30:11 +08:00
为什么会有这种想法🌚
msg7086
2022-09-21 17:31:01 +08:00
为什么在内存里的套接字读取速度会比硬盘上的套接字读取速度快?
debuggerx
2022-09-21 17:34:55 +08:00
Jirajine
2022-09-21 17:35:52 +08:00
unix socket 的文件路径只是起到一个寻址的作用,读写不涉及硬盘 IO 。
再者一般 sock 所在的 /tmp /run 等临时文件目录,已经是 tmpfs 也就是内存盘了。
Vegetable
2022-09-21 17:37:12 +08:00
这东西不是说一个文件,A 写进去,B 读出来,还得磁盘读写一遍
Xusually
2022-09-21 17:43:50 +08:00
放到 /dev/shm 之类的地方 只会创建 删除 socket 文件本身之类的快一些,并不会加快数据通信速度
服务起来 socket 就创建一次,不会对实际性能有什么帮助
learningman
2022-09-21 17:59:28 +08:00
unix socket 不走磁盘 IO 的,别想了
IvanLi127
2022-09-21 18:02:12 +08:00
我都怀疑你在侮辱前辈们的智商了 QAQ
sujin190
2022-09-21 18:10:35 +08:00
unix socket 又不是写到文件再读出来的,哥啊,暴露读书少了
Twnysta
2022-09-21 18:35:12 +08:00
PHP-FPM 数据库慢是在子进程连接的开销上,想提速最好看看怎么转换成长链接或者利用一些 cli 框架
adoal
2022-09-21 18:41:20 +08:00
你想到的,老司机们都想到了。在较新版本的各发行版里,用包管理机制安装的服务软件会把 PF_LOCAL 的 socket 默认建在 /run 下,而这个路径是一个 tmpfs ,建在内存里的。

/润
eason1874
2022-09-21 19:01:10 +08:00
不用自己修改了,现在大部分已经默认放在内存了,就是大家说的 /run 目录,你用 df -h 可以看到这个目录是 tmpfs
star7th
2022-09-21 19:21:54 +08:00
有什么用,单纯把入口放在内存又如何。mysql 的业务数据还是主要在硬盘上,那个才是瓶颈。

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

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

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

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

© 2021 V2EX