跟踪 S3 成本 (S3FS)

Chr*_* Go 2 amazon-s3 s3fs

在过渡期间,由于 ListBucket 和 HeadObject 调用,我们的 S3 成本大幅上涨。我们正试图弄清楚如何调试 S3 成本的突然增加。我们做了一些不应该影响它的更改,但主要的更改似乎是

  • HeadObject 调用增加 10-20 倍
  • ListBucket 调用的突然出现

在此处输入图片说明

我附上了一张图表,显示了 2018 年 4 月 10 日和 2018 年 4 月 14 日之间的跳跃。这之间的日期,我们进行了以下更改

  • 从 (debian 8) S3FS v1.61(从 2012 年开始超旧,甚至不在 Github 中)更改为 v1.84(最新)
  • 从 N. Virginia 搬到 N. California AZ(成本增加 10%)
  • 巨大的黄色条显示使用 Amazon CLI 移动文件(4 月 11 日至 13 日)
  • 为了尝试平息这种情况,我们在 /etc/fstab 中的 mount 命令中添加了以下内容: noatime,stat_cache_expire=3600,enable_noobj_cache
  • 从 4 月 14 日开始看起来不均匀的酒吧现在稳定在 25 美元/天左右

从一开始就已经存在的选项(没有变化) _netdev,allow_other,use_cache=/tmp,umask=0000,use_path_request_style,ensure_diskfree=10240

我们已经做了以下尝试来调试这个

  • 启用 S3 日志记录
  • 将日志转储到 Athena 中,然后将 CSV 导出到 MySQL
  • 这些日志只有 1 天的价值
  • 屏幕截图“查询 1”显示路径中有 4.8m 次点击......基本上,我们认为它正在遍历整个目录树(最像大约 100k 个文件)寻找文件(如果存在)屏幕截图“查询 2”显示同样的事情(某种),它也在沿着一条路径做

在此处输入图片说明

在此处输入图片说明

不太确定还能做什么,但我们每天大约 5 美元(包括其他服务)的正常账单现在约为 25 美元/天(增加 5 倍)……随着 /etc/fstab 的变化,它降至 13 美元/天,但仍然如果我们可以恢复到零 ListBucket 调用和 20% 的 HeadObject 调用,则尝试将其提高到 5 美元/天。

任何关于尝试什么的想法都非常感谢。

Chr*_* Go 6

正在进行 ListBucket 和 HeadObject API 调用updatedb(和located)。

解决方案:将您的挂载点(在我的情况下为 /mnt/s3fs)添加到 PRUNEPATHS 中,/etc/updatedb.conf因此updatedb在扫描时不包括此

  • 它正在深入研究正在进行的 API 调用(上图)——这表明文件没有被拉取,但它正在获取元数据(Head 和 ListBucket)。然后,我们能够隔离出这些调用是在大约 1 次/天的“突发”中进行的,这让我们认为这是某种类型的索引,每天发生 1 次。这是在 Debian 8 中...Debian 9 似乎没有 updatedb 并且位于 (2认同)