ram-dl是一个允许您将RAM上传到系统或从系统下载的工具。
它主要是作为 r3map 的技术演示,r3map是一个支持挂载和迁移的高效分布式mmap库,而 go-nbd是一个纯Go NBD服务器和客户端库。尽管如此,它也可以用于一些实验性的用例,例如:
- 通过网络扩展系统的内存容量:通过利用快速的fRPC RPC框架,你可以使用ram-dl和ram-ul来扩展本地系统的内存(有效地 "下载内存"),而不需要使用本地磁盘空间或内存。
- 挂载一个远程系统的内存:通过用ram-ul分配一个内存区域(有效地 "上传RAM"),可以以最小的延迟将一个远程系统的RAM挂载到你的本地系统。
- 深入了解内存的使用和内容:通过用ram-ul检查 "下载"/挂载的内存,你可以深入了解远程系统的内存内容。
ram-dl基本上是通过以下方式实现的:
- 用r3map的设备API在本地启动一个go-nbd服务器和客户端
- 将NBD服务器连接到一个由ram-ul提供的远程fRPC后端
- 调用mkswap、swapapon和swapoff,使分页到NBD客户端提供的块设备,从而到连接的远程fRPC后端。
对于大多数现实世界的用例,直接使用r3map的Mount API或Migration API是更好(而且更快)的选择,但如果您只想看到在现实生活中实现的下载更多 RAM meme,那么您就来了来对地方了!
安装
静态二进制文件可在GitHub 版本上获取。
在 Linux 上:
$ curl -L -o /tmp/ram-dl "https://github.com/pojntfx/ram-dl/releases/latest/download/ram-dl.linux-$(uname -m)" |
1. 上传内存
在远程(或本地)系统上,首先启动ram-ul. 该组件将内存区域、文件或目录公开为 fRPC 服务器:
$ ram-ul --size 4294967296 |
2.下载内存
在您的本地系统上,启动ram-dl. 这将使用 fRPC 和 r3map 作为交换空间挂载远程系统的公开内存区域、文件或目录,并在中断应用程序时立即卸载它:
$ sudo ram-dl --raddr localhost:1337 2023/06/30 14:54:22 Connected to localhost:1337 2023/06/30 14:54:22 Ready on /dev/nbd0 |
这将为您提供额外的 4GB 本地内存/交换空间,而不会占用大量本地内存(或磁盘空间)
项目点击标题