当前位置: 首页 > 知识库问答 >
问题:

使用Heroku临时文件系统作为Ehcache磁盘存储

车峻熙
2023-03-14

正如 Heroku Dyno 临时文件系统文档所解释的那样,当 dyno 停止或重新启动时,文件系统将被丢弃。这意味着它不能用作永久(磁盘)存储。

我的用例是我想使用Ehcache缓存一些参考数据。我在考虑使用一些(有限的)堆内存以获得最佳性能,如果它不足以回退到磁盘存储。使用Ehcache,这可以在每个缓存的基础上进行很好的配置,例如在堆内存中存储最多1000个条目,例如在磁盘上存储25MB。

根据Heroku留档,在dyno运行时,临时文件系统似乎会保持不变。在我的情况下,当应用程序停止或重新启动时将其丢弃并不重要。在我的用例中,当我运行3 dyno时也没关系,它们都在堆和磁盘中有自己的缓存。

  1. 我的假设是否正确,即在 dyno(s) 运行时的请求期间不会丢弃临时文件系统?只有当测功机停止或重新启动时?
  2. 关于临时文件系统的性能,能说些什么吗?特别是在我的用例中,将其用作缓存磁盘存储。
  3. 临时文件系统的大小是多少?我似乎无法在文档中找到它。

共有1个答案

郜修雅
2023-03-14

总的来说,您将Ehcache写入磁盘的计划似乎很好。当然,在每次dyno重启后,您会支付一些开销,但这是大多数缓存系统所期望的。

  1. 我的假设是否正确,即在 dyno(s) 运行时的请求期间不会丢弃临时文件系统?只有当测功机停止或重新启动时?

是的,你是正确的。

您可以期望类似于在AWS EC2实例中写入文件系统的性能。非常好。

我不认为有公开的限制。它还取决于您的测功机(即它是像爱好测功机这样的多租户测功机还是像performance-m一样专用的测功机)。我猜,只要你写的不到1GB,你应该没有问题。

 类似资料:
  • 据我所知,Herokus Ephemeral文件系统只允许您写入临时文件夹。当停止或重新启动创建文件的测功机时,该文件夹中创建的文件将被丢弃。 我不明白的是,如果dyno没有停止或重新启动会发生什么?一段时间后,文件还会被丢弃吗? 我们目前正在构建一个系统,该系统可以生成pdf文件并通过邮件转发(或者您可以下载该文件)。在发送/下载pdf文件后,我是否需要自己删除它们,或者我可以依靠Heroku自

  • 磁盘调度 磁盘访问延迟 = 队列时间 + 控制器时间 + 寻道时间 + 旋转时间 + 传输时间 磁盘调度的目的是减小延迟,其中前两项可以忽略,寻道时间是主要矛盾。 磁盘调度算法 FCFS:先进先出的调度策略,这个策略具有公平的优点,因为每个请求都会得到处理,并且是按照接收到的顺序进行处理。 SSTF(Shortest-seek-time First 最短寻道时间优先):选择使磁头从当前位置开始移动

  • 我们在应用程序中使用ehcache。请看以下配置: 既然我们已经配置为eternal="true ",那么它会永远创建缓存吗?。磁盘空间有可能用完吗? 对磁盘存储的性能会有什么影响?。肯定比内存缓存慢,但是影响有多大。 如果磁盘中存储了更多缓存,是否会导致执行多个文件操作的IO问题? 请建议生产级应用的最佳实践。假设我们有一个3 GB的堆内存和25000个并发用户访问应用程序。但是,我们的应用程序

  • 磁盘调度 磁盘访问延迟 = 队列时间 + 控制器时间 + 寻道时间 + 旋转时间 + 传输时间 磁盘调度的目的是减小延迟,其中前两项可以忽略,寻道时间是主要矛盾。 磁盘调度算法 FCFS 先进先出的调度策略,这个策略具有公平的优点,因为每个请求都会得到处理,并且是按照接收到的顺序进行处理。 SSTF(Shortest-seek-time First 最短寻道时间优先) 选择使磁头从当前位置开始移动

  • 我无法让我的ehCache与磁盘存储一起工作。我想要一个持久缓存存在后,我重新启动我的应用程序。所以我尝试了ehCache,这是我的ehCache配置文件: 只要我不重新启动应用程序,缓存就会工作。在我重新启动应用程序并且ehCache试图从缓存文件加载数据之后,我得到了这个错误: 我还有一个ShutdownListener来关闭CacheManager 这是我的服务方式

  • 我是发展界的新人。我试图理解Heroku文件系统是如何工作的。 我做了一个Express项目,使用multer上传图像。 在生产中,一切都很好,包括从我的静态文件夹中获取图像。 然而,当我用React(前端=React)做的时候 “根据我的研究,”Heroku说 Heroku 文件系统是短暂的 - 这意味着在 dyno 运行时对文件系统的任何更改只会持续到该 dyno 关闭或重新启动为止。 并且我