运行 Node.js 应用程序脱离通过 sshfs 安装的网络驱动器的性能影响是什么?

What are the performance implications of running a Node.js app off of a network drive mounted via sshfs?

假设我使用 sshfs 安装远程位置。 运行 Node.js 应用程序位于安装的网络驱动器上的性能影响是什么?

有两个问题需要考虑,服务器启动,然后是运行时数据和文件访问。

对于服务器启动,node.js 必须加载您的代码使用的所有模块(模块通常在启动期间加载,而不是稍后在运行时加载)。因此,如果驱动器是远程安装的,那么磁盘访问可能会慢一点,因此您的服务器可能需要更长的时间才能启动。但是,一旦它启动并且它所依赖的所有模块都加载到内存中,您的代码的 运行 就无法再访问该驱动器。 node.js 代码加载后保存在内存中。 所以,这是一个一次性障碍,可能只会让您的服务器启动速度变慢。

如果您的应用程序还访问存储在该服务器上的文件(例如 HTML 模板、静态 CSS 或客户端 JS 文件或数据库),那么每次访问这些文件的速度可能会变慢,并且较慢的速度可能会在响应请求(加载页面、处理数据库事务等)的服务器中表现得比它慢。

由于 node.js 中文件和网络访问的异步特性,它可能不会改变整个服务器的可扩展性,但可能会影响它响应的速度某些类型的请求。

本地缓存或许可以减轻较慢的驱动器访问对性能的一些影响。

您可能还遇到了可靠性问题。如果驱动器的远程 link 不完全可靠,那么您的服务器可能存在可靠性问题。通常,出于可靠性和速度的原因,服务器从本地驱动器工作。