问题标签 [xfs]
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.
linux - 在 Linux 中存储和访问多达 1000 万个文件
我正在编写一个需要存储大量文件的应用程序,最多大约 1000 万个。
它们目前以 UUID 命名,每个大小约为 4MB,但大小始终相同。从/向这些文件读取和写入将始终是顺序的。
我正在寻求答案的 2 个主要问题:
1)哪个文件系统最适合这个。XFS 还是 ext4?2)是否有必要将文件存储在子目录下以减少单个目录中的文件数量?
对于问题 2,我注意到人们试图发现 XFS 对您可以存储在单个目录中的文件数量的限制,但没有找到超过数百万的限制。他们注意到没有性能问题。ext4下呢?
与做类似事情的人一起谷歌搜索,有些人建议将 inode 编号存储为文件的链接而不是文件名以提高性能(这是在数据库索引中。我也在使用)。但是,我没有看到通过 inode 编号打开文件的可用 API。这似乎更像是在 ext3 下提高性能的建议,我不打算顺便使用它。
ext4 和 XFS 的限制是什么?一个比另一个有什么性能优势,在我的例子中,你能看到在 XFS 上使用 ext4 的理由吗?
filesystems - posix reads() 的延迟
我们有一个对延迟非常敏感的应用程序,从某种意义上说,读取的延迟峰值非常非常糟糕。
我已经测试了 XFS 和 ext4,将 O_ASYNC 写入文件,然后在最后写入 fdatasync() 会导致读取延迟达到 1 秒或更多峰值!
然后我尝试了 O_SYNC,我得到了更稳定的读取延迟,但写入文件非常慢。
因此,我尝试编写 O_ASYNC 并每隔 5 兆字节同步写入文件,它的快速和读取延迟也相当稳定。
但是,30 分钟后,我仍然可以阅读需要一秒钟或更长时间的内容。
如果您在 Linux 上构建对延迟敏感的应用程序,您是如何处理文件系统的,还是根本不使用它并将设备作为 RAW 设备安装?
linux - xfs - how to not modify mtime when writing to file?
I have a file, a.dat
that is 1GB and resides on disk. For performance reasons, I reuse this file and simply overwrite its contents as needed, rather than creating a new file and letting it grow (each grow operation has to update its size in the inodes).
I am trying to squeeze even more performance out, and have searched the man pages for open and mount to try to figure out when the mtime and ctime for a file are updated. From my understanding, each time you change a file's contents, the mtime and/or ctime are updated. Is this how xfs works?
If so, is there a way to disable this on linux? I don't care about the mtime and ctime and would rather not incur the cost of updating them with each write operation.
Eventually, I will get rid of the filesystem completely and write directly to the device, but for the meantime I am hoping there is a way to do this with the filesystem.
EDIT IN RESPONSE TO ANSWER
For clarification, I am writing to an SSD and squeezing every operation I can out of the SSD is extremely important. The SSD can theoretically handle on the order of 25K operations per second, and each of these is important to me. I don't want any of them to be wasted on anything other than writing to my files. On that note, in reality I have 200 1GB files on my disk that I'm writing to. I was trying to simplify the problem with my question above.
Additionally, each write must be synchronous and my program will not continue until I am sure that the bits are on disk (which is possible). But I think this note is tangential to the question.
centos - centos5.5如何开启XFS文件系统压缩?
我将文件系统类型用作“XFS”,并且我想为 XFS 文件系统启用压缩。我在网上冲浪,但找不到相关数据。如果有人知道 XFS 文件系统的压缩,请告诉我..
多谢你们,
sync - boost::filesystem::create_directories() 创建的目录不能立即访问?
我boost::filesystem::create_directories()
用来创建新目录。当我在创建后不久尝试访问这些目录时,我收到一条错误消息:没有这样的目录。但是如果我在创建目录后睡一会儿一切都很好(我没有收到错误)。另外,我尝试在创建目录后使用fsync()
and sync()
,但没有任何区别。我在 ext4 和 xfs 文件系统上测试它,我的 boost 版本是 boost 1.44
我的问题是
- 是否
boost::create_directories()
立即创建目录?或者那里可能有问题? - 此外,是否
sync()
保证fsync()
将所有内容刷新到 ext4/xfs 上的光盘?
centos - Cutycapt、wkhtmltopdf、wkhtmltoimage、phantomjs 无法正确显示字符
他们显示的唯一字符是英文字符。
打印页面的布局是应有的,但唯一错误的是除英语(罗马)之外的任何脚本中的字符都被替换为框。
我已经安装了 xvfb 和字体,它仍然给我下面的错误
现在,另一个错误也开始随机出现
我花了一整天的时间试图修复这些错误,我只是感到沮丧。
我正在运行 centos(Linux 2.6.18-274.7.1.el5xen #1 SMP Thu Oct 20 17:06:34 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux)
filesystems - 如何修改 XFS 预分配块的数量?
我写了一个简单的程序,并在 ext4 和 xfs 上运行该程序。
ext4 上的输出:
st_blocks:8 st_blocks:8 st_blocks:8
xfs 上的输出:
st_blocks:128 st_blocks:128 st_blocks:8
然后我探索了 xfs 并找到了一个在运行 mkfs.xfs 时更改范围大小的选项。
示例:mkfs.xfs -r extsize=4096 /dev/sda1
但我仍然在 XFS 上得到相同的输出。谁能提供有关如何更改 st_blocks 的更多见解。提前致谢。
c - 在 XFS 中创建/修改范围
我正在研究磁盘之间的重复数据删除方案,我想知道如何深入研究 XFS 内部结构并为文件创建/修改范围。
这是我想做的一个例子,假设我们有文件:
我们有一个 8 字节的块大小(足够 bippity 和新行)
现在我将文件更改为
只有第一行发生了变化,我想创建一个文件,为第一行创建一个扩展区(或块),将数据写入该扩展区,然后将该扩展区与磁盘上已有的扩展区连接起来,所以只有一个变化被推送到磁盘。
这在 xfs 上是否可行(甚至更好,在一般文件系统上)?我不介意深入细节,但我似乎无法找到关于这个特定主题的大量信息。
linux - 在 Linux 上移动文件时的竞争条件
假设我有两个脚本。第一个将(使用 mv 命令)一些文件放入目录中,第二个不时检查目录并处理文件。我担心的情况是当第二个脚本开始处理目前仅部分移动的文件时。这会在 XFS 文件系统上发生在现实生活中吗?
ruby - 您如何确定 XFS 文件系统是否以编程方式冻结?
我正在编写一个简单的 EC2 快照脚本,需要确定是否有办法知道文件系统是否被冻结。就目前而言,尝试对冻结的文件系统执行任何操作都会挂起脚本(并且也会挂在 bash shell 中)。
是否有命令或方法可以知道文件系统是否处于冻结状态?
谢谢!