【问题标题】:Is it better for php-fpm Unix Socket in ephemeral storage or EBS?临时存储或 EBS 中的 php-fpm Unix Socket 更好吗?
【发布时间】:2014-10-01 07:32:54
【问题描述】:

我正在尝试调整我的 EC2 性能。其中之一是将临时存储用于所有 I/O。对于 php-fpm,我使用的是 unix socket 而不是 tcp/ip,因为一切都是本地的。考虑到 EBS 存储只有 24 IOPS(8GB),我想知道将 php-fpm 套接字移动到临时存储是否更好。由于文件大小始终为 0,因此在 unix 套接字文件中是否有任何 I/O 活动

[root@ php-fpm]# ls -al
total 12
drwxr-xr-x  2 root  root  4096 Aug  5 19:37 .
drwxr-xr-x 16 root  root  4096 Aug  7 03:27 ..
-rw-r--r--  1 root  root     4 Aug  5 19:37 php-fpm.pid
srw-rw-rw-  1 nginx nginx    0 Aug  5 19:37 php-fpm.sock

【问题讨论】:

  • 套接字只是一个“虚拟”文件,允许直接对程序进行标准的 fopen/fread/fwrite 操作。文件套接字不应产生任何网络 i/o,因为它纯粹是本地构造,即使文件系统是网络安装的。
  • 感谢您的解释。所以我认为将 unix 套接字移动到临时存储并没有太大帮助,因为没有发生磁盘 I/O。

标签: linux nginx amazon-ec2 php


【解决方案1】:

EBS 是一种基于网络的服务,因此每个操作都依赖于网络。 The docs说:

An Amazon EBS volume is off-instance storage that can persist independently from the life of an instance. 

考虑为您的套接字使用临时存储。如果您使用 EBS,请不要忘记在第一次使用之前分配所有具有磁盘重复的磁盘:

dd if=/dev/zero of=/dev/xvdf bs=1M

但不要在根 / 磁盘上执行此操作,如果您更喜欢使用额外的 EBS 磁盘,则只需在该磁盘上执行此操作即可。

附:如何预热 EBS,请阅读official docs 中的所有详细信息。

【讨论】:

  • 除了根卷之外,我没有任何额外的 EBS 卷。所以我想我不需要运行这个命令。无论如何,谢谢。
猜你喜欢
  • 2022-11-18
  • 2011-04-06
  • 2018-02-26
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多