通过 nfs 共享 mmap 文件?

2024-01-11

场景A:

为了在同一主机上运行的两个进程之间共享读/写内存块,Joe 从两个进程映射同一个本地文件。

场景B:

为了在两个不同主机上运行的两个进程之间共享读/写内存块,Joe 在主机之间通过 nfs 共享一个文件,然后从两个进程映射共享文件。

有人尝试过场景B吗?场景 B 中出现的额外问题有哪些不适用于场景 A?


如果没有一些额外的操作,Mmap 不会共享数据。

如果您更改文件的映射部分中的数据,则更改将仅存储在内存中。它们不会被刷新到文件系统(本地或远程),直到msync http://pubs.opengroup.org/onlinepubs/7908799/xsh/msync.html或munmap或关闭甚至操作系统内核及其FS的决定。

使用 NFS 时,锁定和存储数据将比使用本地 FS 慢。刷新超时和文件操作时间也会有所不同。

在姐妹网站上 https://serverfault.com/questions/340296/how-do-i-speed-up-and-cache-mmap-file-access-over-nfs-on-linux人们说 NFS 的缓存策略可能很差,因此与本地 FS 相比,NFS 服务器的 I/O 请求数会多得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 nfs 共享 mmap 文件? 的相关文章

  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 如何通过 makefile 在 Linux 上安装程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Linux Unix make install 应该包含什么 https stackoverflow com questions 528399 what should linux unix make
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • Forth 中 S" ..." 的生命周期是多少?

    我一直在尝试阅读此内容 但找不到任何提及 根据标准 创建的字符串S 无法修改 并且通过简单的实验Gforth http en wikipedia org wiki Gforth很明显 字符串的空间不是来自字典或填充区域 hex here 7
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • Glassfish 上的内存管理

    我的 Glassfish 服务器上运行着几个后台任务 由 TimerService实例 这些服务的目标是从文件中提取数据并将该数据插入数据库 我最初尝试在 JPA 中执行此操作 但系统很容易就停滞了 我现在已将该过程转换为 JDBC 它的响
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu

随机推荐

  • 在Python中使用函数名作为变量

    我有一个有趣的 可能是愚蠢的 想法 如果我使用内置函数名称作为变量来分配某个对象 比如整数 会发生什么 这是我尝试过的 gt gt gt a 1 2 3 4 gt gt gt len a 4 gt gt gt len 1 gt gt gt
  • 以非交互方式将函数参数传递给 Julia

    我的文件中有一个 Julia 函数 假设是下面的 现在我想将参数传递给这个函数 我尝试做 julia filename jl randmatstat 5 但这给出了一个错误 即 标记是意外的 不确定解决方案是什么 我也对是否有一个 main
  • Socket.io 与 PubNub...为什么?

    我看到 PubNub 说他们支持 Socket io http blog pubnub com node js supercharged by pubnub socket io github http blog pubnub com nod
  • SQL Server 2005 ROW_NUMBER() 不带 ORDER BY

    我正在尝试使用从一个表插入另一个表 DECLARE IDOffset int SELECT IDOffset MAX ISNULL ID 0 FROM TargetTable INSERT INTO TargetTable ID FIELD
  • 内存中“null”在哪里

    在java中 你不能在声明中声明数组的大小 int 5 scores bad 有人告诉我这是因为 JVM 在对象初始化之前不会分配内存空间 如果您有一个实例数组变量 自动初始化为默认值 null 该变量是否指向堆中指示 null 的位置 空
  • 为什么匿名方法中不允许使用 out 参数?

    这不是一个骗局从匿名方法调用带有 ref 或 out 参数的方法 https stackoverflow com questions 1001475 calling a method with ref or out parameters f
  • 一个函数中的两个多态类

    我有状态单子的代码 import Control Monad State data ModelData ModelData String data ClientData ClientData String act String gt Sta
  • SQL Server NOLOCK 和联接

    背景 我想运行一个性能关键的查询 并且我不关心脏读 我的问题是 如果我使用连接 我是否还必须在这些连接上指定 NOLOCK 提示 例如 是 SELECT FROM table1 a WITH NOLOCK INNER JOIN table2
  • 是否可以从特定方法初始化单例,而不是在执行应用程序时初始化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 是否可以从特定方法初始化单例 而不是在执行应用程序时初始化 我需要在 viewdidload 中运行一个方法 具体取决于 Singleton
  • 在发布期间标记 TFS Git 存储库

    我正在使用 TFS 2017 设置构建 发布环境 我将构建设置为在每次提交后自动运行 当我们准备好发布应用程序的版本时 手动创建一个发布 然后部署到各种环境 我们希望在 git 存储库中标记已发布的版本 以便轻松了解哪个 git 修订版本对
  • 如何知道计算C++算法的执行时间?

    我想通过查看算法的运行时性能来测试哪种数据结构是最好的 我该怎么做 例如我已经有一个hashmap
  • NSDecimalNumber 的 NSDecimalNumber 次方

    我有两个 NSDecimalNumbers 我需要应用一个到另一个的幂 最初这段代码使用的是双精度数 我可以使用 pow 函数来计算它 如下所示 double result pow value1 value2 我遇到的问题是我正在将代码转换
  • 如果指向的文件被移动或删除,Linux 上打开的文件句柄会发生什么情况

    如果指向的文件同时出现以下情况 Linux 上打开的文件句柄会发生什么情况 已移走 gt 文件句柄仍然有效吗 已删除 gt 这是否会导致 EBADF 表明文件句柄无效 被新文件替换 gt 文件句柄是否指向这个新文件 替换为新文件的硬链接 g
  • 为什么在 url 中使用 - 而不是 _

    为什么在 url 中使用 而不是 url 包含 似乎没有什么不好的影响 主机名中不允许使用下划线 因此 some place com 不是有效的 URL 因为主机名无效 URL 中允许使用下划线 因此 抛开其他问题不谈 some place
  • 运行一个又一个命令,即使我暂停第一个命令 (Ctrl-z)

    我知道在 bash 中我可以通过用分号分隔命令来运行一个又一个命令 例如 command1 command2 或者如果我只想command2仅当以下情况时才运行command1成功 使用 command1 command2 这可行 但如果我
  • 用于在 Python 中将多字节字符转换为 7 位 ASCII 的 Python 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个 python 库可以将多字节非 ASCII 字符转换为某种合理形式的 7 位可显示 ASC
  • 在 Nest 5.5.0 中为属性设置 not_analyzed

    我尝试通过 Nest 5 5 0 设置 not analyzed 索引类型 但我不知道该怎么做 My init var map new CreateIndexDescriptor INDEX NAME Mappings ms gt ms M
  • 在 Asp.Net MVC 中显示从控制器返回的 JSON 数组数据

    我的控制器中有一个操作方法 public ActionResult IndexWithJson int Id int page int pageSize 2 int pageNumber page 1 using var adsRepo n
  • Laravel 5 中仅为一种环境启用全局中间件

    我在 Laravel 5 barryvdh laravel cors 中使用全局中间件 但我只希望它在一种环境 dev 上处于活动状态 那是因为我只需要在开发环境中使用 Composer 所以它没有安装在生产环境中 我在应用程序内核中注册了
  • 通过 nfs 共享 mmap 文件?

    场景A 为了在同一主机上运行的两个进程之间共享读 写内存块 Joe 从两个进程映射同一个本地文件 场景B 为了在两个不同主机上运行的两个进程之间共享读 写内存块 Joe 在主机之间通过 nfs 共享一个文件 然后从两个进程映射共享文件 有人