我已经将我的 JDK、工作区和 Tomcat 服务器移动到一个 RAM 磁盘,该磁盘是在 Imdisk 工具的帮助下创建的。
这一举措提高了我的 Eclipse IDE 和我的工作效率。
但是每当我启动我的机器时我都会丢失我的虚拟磁盘。这是一种保留 RAM 驱动器及其内容的方法吗?
我使用的是 64 位 Windows 7,实际 RAM 为 8GB。
我正在OLAP环境中的一些非常大的表上运行一些聚合查询.我目前受到磁盘IO的瓶颈,速度为200 MB/s.
我正在使用92 GB RAM的机器上进行这些查询.是否有任何SQL提示我可以写入我的查询,基本上告诉SQL在执行之前将整个表加载到RAM中?
就像是:
从myTable中选择*(ramdisk)
我正在使用MS TSQL.
Run Code Online (Sandbox Code Playgroud)mkdir /data/tombstones 0771 system system symlink /data/tombstones /tombstones mkdir /tombstones/mdm 0771 system system mkdir /tombstones/modem 0771 system system mkdir /tombstones/lpass 0771 system system # For firmwares mkdir /firmware_radio 0771 system system mkdir /firmware_q6 0771 system system mkdir /firmware_dsps 0771 system system mkdir /vendor 0771 system system mkdir /vendor/firmware 0771 system system devwait emmc@radio mount vfat emmc@radio /firmware_radio ro shortname=lower devwait emmc@adsp mount vfat emmc@adsp /firmware_q6 ro shortname=lower exec /system/bin/sh /system/etc/init.qcom.radio_links.sh exec /system/bin/sh /system/etc/init.qcom.q6_links.sh mkdir /data/qcks 0770 system system mkdir /data/efs …
我有一个命令行可执行文件,我需要在Windows XP上从Java运行.它使用文件作为输入和输出.但我想避免文件IO的开销,所以我想到了一个内存中的RAM文件系统.
NetBSD有mount_mfs.
你能推荐最方便的方法吗?
对于 Minecraft 游戏,运行服务器应用程序时的一般方法是在 RAMDisk 中运行它,因为它使用数百个小文件来生成世界,I/O 速度是主要瓶颈。
在最近的一次尝试中,我尝试使用 Dokan/ImDisk 以编程方式为服务器应用程序创建 RAMDisk。Dokan 比普通硬盘慢得多,而且我无法让 ImDisk 正常运行。由于这是我所知道的仅有的 2 个具有 .NET API 的文件系统驱动程序,因此我现在正在寻找替代方案。
之前有人向我提到要尝试内存映射文件。我目前的方法是创建 RAMDisk,在游戏服务器的数据文件夹和 RAMDisk 之间创建符号链接,然后启动游戏服务器进程。
内存映射文件是否可以以相同的方式运行,IE 创建一个虚拟驱动器,我可以创建一个符号链接?如G:\Data_Files\?
是否有其他带有 .NET API/绑定的 Dokan/ImDisk 替代方案?
我需要使用c++将 ramfs 挂载到 linux 中的目录。我想让它像一个用户(没有sudo)。
我需要在我创建的文件上调用应用程序,而且经常会这样。将其写入 HDD 非常慢。
我发现只是:
system("mkdir /mnt/ram");
system("mount -t ramfs -o size=20m ramfs /mnt/ram");
Run Code Online (Sandbox Code Playgroud)
但这并不好。我想成为一个普通用户,并且mount可以像 root 一样调用命令。我能做什么?
我正在编写一些软件,需要将数据从分层类型的格式扁平化为表格格式。与其每次都用一种编程语言完成并提供它,我想将结果缓存几秒钟,然后使用 SQL 进行排序和过滤。在使用时,我们说的是在这几秒钟的过程中进行了 400,000 次写入和 1 次或 2 次读取。
每个表将包含 3 到 15 列。每行将包含 100 字节到 2,000 字节的数据,尽管在某些情况下,某些行可能会达到 15,000 字节。如有必要,我可以剪辑数据以保持理智。
我正在考虑的主要选择是:
一个不错的选择,几乎是专门为我的用例编写的!但是……“MEMORY 表使用固定长度的行存储格式。可变长度类型(如 VARCHAR)使用固定长度存储。MEMORY 表不能包含 BLOB 或 TEXT 列。” - 不幸的是,我确实有长度可达 10,000 个字符的文本字段 - 即使是这个数字也没有特别限制。我可以在循环扁平化时根据文本列的最大长度调整 varchar 长度,但这并不完全优雅。另外,对于我偶尔的 15,000 个字符行,这是否意味着我需要为数据库中的每一行分配 15,000 个字符?如果有 100,000 行,那就是 1.3 GB,不包括开销!
这是为了在云上运行,我可以轻松地启动具有 16GB 内存的服务器,配置 MySQL 以写入 tmpfs 并使用全功能的 MySQL。我对此的担忧是空间。虽然我确信工程师已经编写了内存引擎来防止消耗所有临时存储和服务器崩溃,但我怀疑这个解决方案是否知道何时停止。在数据库格式下,我的 2,000 字节数据将消耗多少实际空间?我怎样才能监控它?
索引 实际上我会提前知道哪些列需要过滤和排序。我可以在插入之前设置索引,但是老实说,我可以期望在 ram 磁盘上获得什么样的性能提升?索引增加了多少额外开销?
插入 我假设用一个查询插入多行会更快。但是一个查询或一系列大型查询存储在内存中,并且我们正在写入内存,因此如果我这样做,我暂时需要双倍内存。那么我们谈论一次做一两个或一百个,并且必须等待它完成才能处理更多.. InnoDB 不锁定表,但我担心发送两个查询彼此太近而混淆MySQL。这是一个有效的担忧吗?由于表锁定,使用 MEMORY 引擎我肯定必须等待完成。
临时 临时表除了在数据库连接关闭时被删除之外还有什么好处吗?
我自己编译了busybox,然后将其放入嵌入式Linux中。但是我有一些疑问。
问题1:当我尝试使用诸如gzip之类的命令时,它会显示“ gzip:applet not found”。当我检查busybox的menuconfig时,请确保已选择“ gzip”。
问题2:我以前使用过VIM,但是busybox只提供VI。因此我将VIM链接到VI,但是当我输入vim并运行它时,它也显示“ vim:未找到applet”。
有人可以帮助我解决“找不到小程序”的问题吗?非常感谢你。
PS:我对busybox的“小程序”感到困惑,这是什么?像Java中的“小程序”一样?
我最近发现了几篇文章,可以通过将 JDK 放在 ramdisk 上并让它用于构建目的来提高 IDE(比如 eclipse)性能。我可以猜测这如何使事情更快,但我不知道确切的细节。
IDE 不会将所需的 JDK 部分加载到内存中吗?将 JDK 保留在 ramdisk 上是一次性的好处还是连续的事情。如果有人可以阐明确切的机制,那就太好了。
动机是我正在处理的项目很大,有时我确实需要在 Eclipse 中打开“自动构建”功能。我正在探索加快构建过程的方法
笔记
我发布了一个不同的问题,用术语“JVM”代替“JDK”,这使它变得混乱和误导。我为此道歉,并重新组织了我的问题。
我正在加速用于MySQL持久性的测试套件。datadir我已将和更改tmpdir为my.cnf使用 RAMDisk,如下所示。
datadir = /run/shm/mysql
tmpdir = /run/shm/mysqltemp
Run Code Online (Sandbox Code Playgroud)
问题是,每次我运行整个测试套件时,当测试尝试删除某些行作为正在测试的功能的一部分时,有时我会遇到外键约束违规。奇怪的是,当我不在 RAMDisk 上运行 MySQL 或当我保留datadir默认设置/var/lib/mysql/但仅更改tmpdir. 我想使用datadirRAM 运行测试,因为我注意到这样做时清理逻辑非常快。
有人可以帮助指出我在这里可能做错了什么吗?