问题标签 [nfs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 PHP 解压缩到 NFS 时速度很慢,如何加快速度?
我试图弄清楚如何提高我的 NFS 速度和 php 上传。
文件上传到网络服务器的本地 tmp 目录
使用 PHP,我将文件 userxxx.zip 复制到 NFS
使用 PHP,我将 NFS 上的 userxxx.zip 解压缩到 NFS 上的另一个目录。
我发现该文件在第 3 步中,该文件正在由 Web 服务器通过 NFS 读取,由 Web 服务器处理,并通过 NFS 上传回。
预期的速度非常慢。
可能的解决方案是让文件服务器提取 zip?a) Webserver 将文件复制到 NFS b) Webserver 对 Fileserver 进行 Web 服务调用 c) Fileserver 现在可以像在本地一样解压缩文件,并且速度应该更快。
我将不胜感激人们如何解决这个问题的任何建议。
(我知道 php ZipArchive() 非常慢,我可能会使用 java 或 php exec unzip 来加快速度)
谢谢
linux - sqlite 在 nfs 上的 tcl 脚本中使用(或者.. 如何制作可以在 nfs 上运行的独立 sqlite3)
我想使用将 sqlite 数据库嵌入到现有的 tcl 应用程序(从平面文件迁移)。
目前; 我们的 tcl 解释器从网络位置运行;<nfs share>/bin/tclsh8.3
我已经$PATH
为所有用户设置了可执行文件的 nfs;我假设我可以在那里放置一个独立的 sqlite3 可执行文件;虽然我还没有找到一种简单的方法来编译本地 lib 独立的 sqlite...(所有 linux 客户端,运行从 red hat 9 到 ubuntu 10.04 的任何东西)
任何人都能够在构建我可以在我的 nfs tcl 安装中使用的 sqlite3 独立二进制文件中向我提出正确的方向?
java - 从单个位置共享属性文件
我们将 Java Enterprise 应用程序部署到多台服务器上。有运行相同应用程序以进行负载平衡的复制服务器(我们称它们为 J2EE 服务器)。请注意,这不是集群的。
有一个通用服务器(我们称之为 props 服务器)托管与所有应用程序相关的所有属性文件。包含属性文件的文件夹是 NFS 在所有其他 J2EE 服务器之间共享的。问题是您可以看到道具服务器是单点故障。如果它没有出现或者如果 NFS 共享被损坏,其他服务器将无法加载属性。
有哪些选择可以避免这种硬依赖?鉴于我们不想将属性文件复制到所有服务器的约束。
java - NFS 驱动器上的 Java 文件删除
我正在尝试删除 NFS 驱动器上的文件。
我在操作远程驱动器上的文件时遇到了其他问题,例如移动文件 - 但是我通过不使用传统方法(即 renameFile)而是正确使用输入和输出流来解决它。
但是使用 File.delete() 返回 false ,并且我听说过有关使用 apache commons io FileUtils 类的建议 - 但是它只会引发 IO 异常。
有人对使用 java 删除网络安装驱动器上的文件的方法有任何建议吗?
python - 检查 NFS 共享是否安装在 python 脚本中
我编写了一个 python 脚本,它依赖于某个可用的 NFS 共享。如果 NFS 共享没有挂载,它会很乐意将文件复制到应该挂载的本地路径,但稍后当它尝试将在 NFS 服务器上创建的一些文件复制回来时会失败。
我想专门捕获这个错误,这样我就可以打印一个有用的错误消息,告诉这个脚本的用户他们必须做什么。
我的第一个想法是使用子进程执行挂载,然后检查此 nfs 共享的输出。但是我想知道是否没有更好,更强大的方法来做到这一点。
java - Java map / nio / NFS 问题导致 VM 故障:“在最近编译的 Java 代码中的不安全内存访问操作中发生故障”
我已经为特定的二进制格式(如果有人感兴趣,可以使用nfdump )编写了一个解析器类,它使用 java.nio 的MappedByteBuffer来读取每个数 GB 的文件。二进制格式只是一系列标头和大多数固定大小的二进制记录,通过调用 nextRecord() 将其馈送到被调用方,后者会推送状态机,完成后返回 null。它表现良好。它适用于开发机器。
在我的生产主机上,它可以运行几分钟或几小时,但似乎总是抛出“java.lang.InternalError:在已编译的 Java 代码中最近发生的不安全内存访问操作中发生错误”,指涉其中一个 Map.getInt , getShort 方法,即在map中的一个读操作。
设置地图的无争议(?)代码是这样的:
然后我使用各种 map.get* 方法来读取 shorts、ints、longs 和其他字节序列,然后再点击文件末尾并关闭地图。
我从来没有见过我的开发主机上抛出的异常。但我的生产主机和开发主机之间的显着区别在于,在前者上,我通过 NFS 读取这些文件的序列(最终可能 6-8TB,仍在增长)。在我的开发机器上,我在本地选择的这些文件较少(60GB),但是当它在生产主机上炸毁时,通常早在它达到 60GB 数据之前。
两台机器都运行 java 1.6.0_20-b02,虽然生产主机运行的是 Debian/lenny,但开发主机是 Ubuntu/karmic。我不相信这会有所作为。两台机器都有 16GB 的 RAM,并且使用相同的 java 堆设置运行。
我认为,如果我的代码中存在错误,那么 JVM 中的错误就足够了,不会给我抛出适当的异常!但我认为这只是一个特定的 JVM 实现错误,由于 NFS 和 mmap 之间的交互,可能是官方修复的6244515的重现。
我已经尝试添加“加载”调用以强制 MappedByteBuffer 将其内容加载到 RAM 中 - 这似乎延迟了我完成的一次测试运行中的错误,但不能阻止它。或者它可能是巧合,这是它在崩溃之前最长的一次!
如果你已经读到这里,并且以前用 java.nio 做过这种事情,你的直觉是什么?现在我的是在没有 nio 的情况下重写它:)
macos - 在雪豹中启动文件服务器(可能是 NFSD)而不需要 root?
我希望我的 OS X 应用程序通过环回设备共享文件。我想这样做,以便我的应用程序可以使用户可以使用经常更改的只读文件目录,而不会弄乱用户的主目录。这些文件将从应用程序支持目录中分离出来,但用户不必担心这一点。
Apple 建议使用 NFS 服务器来执行此操作(请参阅本问答的“替代方案”部分):
http://developer.apple.com/mac/library/qa/qa2001/qa1242.html
据我所知nfsd
,必须以 root 身份运行,我希望避免这种情况(每当应用程序启动时要求用户输入密码将是一个可怕的 UX)。
nfsd
是否可以在没有 root的情况下启动实例?
我可以在应用程序中包含任何替代 NFS 服务器吗?(我找不到任何)
有没有我可以使用的替代服务器?(服务器必须是 AFP、SMB 或 WebDAV,因为这些是 Finder 可以挂载的协议——我找不到任何这样的服务器)。
c - 确保客户端上的文件状态与 NFS 服务器同步
我正在尝试找到正确的方法来处理 NFS 客户端上的陈旧数据。考虑以下场景:
- 两台服务器挂载相同的 NFS 共享存储和文件数
- 1 台服务器上的客户端应用程序删除了一些文件
- 2台服务器上的客户端应用程序尝试访问已删除的文件并失败:过时的 NFS 文件句柄(没什么奇怪的,预计会出错)
(另外了解一下,出于性能原因,两台服务器上的缓存挂载选项都非常高)。
我想了解的是:
- 是否有可靠的方法来检查该文件是否存在?在上面给出的场景中,文件上的 lstat 返回成功,而应用程序仅在尝试移动文件后才会失败。
- 如何手动将客户端上的目录内容与服务器同步?
- 关于如何在 NFS 的情况下编写可靠的文件管理代码的一些一般建议?
谢谢。
unix - NFS 主页 / .profile / 3 种 UNIX 风格:最佳实践?
三种 UNIX:Linux、Solaris、IRIX……一个 NFS 挂载的主目录。
我想根据我要连接的操作系统有一个(稍微)不同的 .profile 行为。我可以一起破解一些东西,但如果没有必要,我不想重新发明轮子。
是否有根据操作系统拆分 .profiles 部分的最佳做法?
linux - How to write reliable file management code on NFS
Please give me some general advises on how to write reliable file management code using NFS. How to avoid or handle ESTALE errors? Programming language doesn't really matter.
Thanks.