假设我使用sshfs挂载远程位置。运行位于已安装的网络驱动器上的Node.js应用程序会对性能产生什么影响?
答案 0 :(得分:1)
有两个问题需要考虑,服务器启动,然后是运行时数据和文件访问。
对于服务器启动,node.js必须加载代码使用的所有模块(模块通常在启动期间加载,而不是在运行时期间加载)。因此,如果远程安装驱动器,则磁盘访问速度可能会慢一些,因此您的服务器可能需要更长时间才能启动。但是,一旦它启动并且它所依赖的所有模块都被加载到内存中,就不再能够访问该驱动器以运行代码了。 node.js代码在加载后保存在内存中。 因此,这可能只会让您的服务器启动速度变慢一点。
如果您的应用程序还访问存储在该服务器上的文件(例如HTML模板,静态CSS或客户端JS文件或数据库),则对这些文件的每次访问可能会更慢,并且速度较慢可能会在响应的服务器中显示出来请求(加载页面,处理数据库事务等等)的速度比它慢。
由于node.js中文件和网络访问的异步性质,它可能不会改变整个服务器的可扩展性,但它可能会影响它对某些类型的响应速度请求。
本地缓存可能会减轻较慢的驱动器访问对性能的影响。
您可能还有可靠性问题。如果驱动器的远程链接不完全可靠,那么您的服务器可能存在可靠性问题。通常,出于可靠性和速度原因,服务器可以在本地驱动器上运行。