腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
请解释一下我的fio结果--
O_SYNC
|O_DIRECT在
linux
上的行为不正常吗?
linux
、
performance
、
linux-kernel
在
linux
上,这是sync=0的结果:我的理解是,由于我是在原始块设备上操作,所以
O_SYNC
尤其是O_DIRECT|
O_SYNC
集。 有什么想法吗?
浏览 0
提问于2013-07-02
得票数 1
回答已采纳
3
回答
Linux
/FreeBSD上的O_DIRECT与
O_SYNC
c
、
linux
、
freebsd
我正在编写一个运行在
Linux
和FreeBSD上的程序,我想确保在每个write()返回时,数据实际上都被写到物理设备上的文件中,这样我的数据就不会因为意外而丢失(例如,停电,进程被意外中断,等等)。根据打开(2)手册页,在
Linux
(高于2.6)上,O_DIRECT是同步的,但可能存在性能问题;在FreeBSD上,O_DIRECT不能保证同步,也可能有问题。因此,在
Linux
上,O_DIRECT或
O_SYNC
都保证同步写入,但是哪一个性能更好?在FreeBSD上,为了保证同步写入,哪个选项的性能最好:(1) O_DIR
浏览 28
提问于2013-10-18
得票数 7
回答已采纳
4
回答
O_SYNC
和O_DIRECT标志在open(2)中有什么不同/相似之处?
io
、
posix
、
synchronous
O_SYNC
和O_DIRECT标志的用法和效果非常令人困惑,并且在不同的平台上似乎有所不同。在
Linux
手册页(请参阅示例)中,O_DIRECT提供同步I/O,最小化缓存影响,并要求您自己处理块大小对齐。
O_SYNC
只保证同步I/O。虽然两者都保证数据被写入硬盘的缓存,但我认为直接I/O操作应该比普通的同步I/O更快,因为它们绕过了页面缓存(尽管FreeBSD的open(2)手册页指出,当使用
O_SYNC
时,会绕过缓存。参见)。O_DIRECT和
O_SYNC
标志之间
浏览 7
提问于2011-02-20
得票数 55
1
回答
使用多个线程并发写入文件
c
、
linux
、
concurrency
、
pthreads
、
block-device
我有一个用户级程序,它使用标志O_WRONLY|
O_SYNC
打开一个文件。该程序创建256个线程,试图将256个或更多字节的数据写入文件。当我检查pwrite()调用被阻塞的平均时间和相应的数字(即平均Q2
C
次数--这是BIOs的整个生命周期的时间的度量)时,我发现使用的时间有显着性差异。这些数字不应该相似吗,因为
O_SYNC
确保数据在返回之前实际上是写到物理介质中的?
浏览 0
提问于2011-08-24
得票数 4
1
回答
fcntl:打开和关闭磁盘缓冲区
c
、
linux
、
unix
我编写了一个简短的
C
程序来打开和关闭unix文件。下面的代码是打开它。我使用fcntl获取设置,设置
O_SYNC
标志,然后将设置写回其他内核。但是当我再次获得设置时,没有设置它们的
O_SYNC
标志。int result, s;s |=
O_SYNC
; // set SYNC bitelse /
浏览 7
提问于2012-04-28
得票数 4
2
回答
o_sync
是如何触发how的?
linux
、
filesystems
、
io
、
cache
当我使用
o_sync
编写时,写入调用将在数据写入磁盘后返回。但是,
o_sync
如何强迫
Linux
将数据写入磁盘呢?
o_sync
是否将数据的dirty_expire_centisecs设置得更低,或者是否发生了其他事情(手动调用刷新)? 请提供你的答案的来源。我找不到关于这个话题的任何东西。
浏览 0
提问于2015-11-10
得票数 2
回答已采纳
1
回答
我们应该如何解释CFQ-iosche.txt中的“异步请求”这个短语?
linux-kernel
、
io
O_SYNC
标志,可以在open()文件时设置。 (注意,据我所知,上述关于IO优先级的引号不适用于简单缓冲写入.。IO优先权对这类请求没有影响。
浏览 0
提问于2019-01-26
得票数 0
回答已采纳
1
回答
O_SYNC
什么时候起作用?
linux
、
go
、
mender
因为文件是用标志打开的,所以我天真地认为我只需要设置flag |=
O_SYNC
,这样io.Copy(dev, image)就不会比写到dev的速度更快地读取image。但是设置
O_SYNC
并没有什么区别。我不清楚
O_SYNC
是否只是一个提示(所以我不能指望它),如果我可能在我的设备上遗漏了什么(比如说,我忘记了Raspberry Pi上的一个内核选项,因此
O_SYNC
是无用的),还是我只是误解了
O_SYNC
编辑:我还尝试设置
O_SYNC
| O_DIRECT (虽然Go中显然没有公开O
浏览 12
提问于2022-05-04
得票数 1
回答已采纳
1
回答
C
程序在打开端口失败前设置端口参数
c
、
linux
、
serial-port
我试图在
Linux
系统上编写
c
代码,在这里我设置了串口参数,然后打开了串口,然后我发现即使代码编译和运行,我也不能从该串口读写(所以串口没有被成功打开)!*portname;struct termios tty; tty.
c
_cflag &= ~PARENB;
浏览 4
提问于2014-06-20
得票数 1
回答已采纳
1
回答
当使用StandardOpenOption.SYNC打开底层通道时,我们是否必须刷新MappedByteBuffer
java
、
c
、
linux
、
mmap
、
memory-mapped-files
编辑: 我假设jdk使用
O_SYNC
标志和mmap()调用,那么将这个问题扩展到
linux
世界:当底层的fd用
O_SYNC
标志打开时,我们必须调用msync()吗?
浏览 27
提问于2017-12-31
得票数 0
回答已采纳
2
回答
使用Ptrace来找出参数对于系统调用到底意味着什么
c
、
linux
、
system-calls
、
strace
、
ptrace
我已经发布了下面的,得到了一个解决方案并向前推进该程序在ebx、ecx、edx中获取我的值。现在,为了一个开放的系统呼叫,我得到了 SYSCALL 5: ebx :80485b3 ecx: 00000242 edx: 000001b6 /open 打开(“test.t
浏览 1
提问于2012-03-20
得票数 1
回答已采纳
2
回答
在NTFS上读取文件时如何在
C
中清除驱动器缓存
c
、
linux
、
caching
、
benchmarking
、
ntfs
我在
Linux
操作系统上用
C
语言做了一个驱动器基准测试,在NTFS文件系统上遇到了一个问题。下面是一些编写许多新文件的代码:{for ( int i = 0; i < 100; ++i ) fd = open(nextfile, O_RDONLY | O_DIRECT |
O_SYNC
浏览 1
提问于2013-03-05
得票数 1
回答已采纳
1
回答
使用MSYS2 2/MINGW-64缺少POSIX和std符号
c++
、
posix
、
porting
、
mingw-w64
、
msys2
我尝试将一些
C
/
C
++代码从
Linux
移植到Windows。在
Linux
上,我使用GCC-10来构建,在Windows上,我尝试使用MSYS2 2/MINGW-64。我以前从未使用过MSYS2,在将
Linux
/POSIX代码移植到windows方面经验也不多。 std::at
浏览 1
提问于2021-09-08
得票数 2
回答已采纳
2
回答
在
Linux
中读取没有磁盘缓存的文件
linux
、
io
我有一个
C
程序,它每周只运行一次,并且只读取一次的大量文件。因为
Linux
也缓存所有读取的内容,所以它们不必要地填充缓存,这大大降低了系统的速度,除非它有SSD驱动器。
浏览 4
提问于2013-03-07
得票数 13
回答已采纳
1
回答
带
O_SYNC
标志的格式化固态硬盘顺序写入吞吐量
fwrite
、
throughput
、
solid-state-drive
然后,我使用
O_SYNC
标志在文件系统上执行大小为4k的顺序写操作(以确保在写操作返回时将写操作提交到磁盘)。我的测试程序是单线程的。 据我所知,吞吐量将是底层SSD的IOPs和延迟评级的组合。当我在相同格式化的固态硬盘上运行没有
O_SYNC
标志的相同程序时,我得到了10倍好的结果(大约80k IOPS)。我可以做哪些额外的调优或测试来更好地处理正在发生的事情?
浏览 19
提问于2017-08-19
得票数 0
回答已采纳
1
回答
使用mmap读/写寄存器
c++
、
mmap
off_t dev_base = ( MY_BASE_ADDRESS | LED_ADDRESS);首先,我打开/dev/memmemoryFileDescriptor = open("/dev/mem",O_RDWR |
O_SYNC
);
浏览 2
提问于2014-09-04
得票数 1
1
回答
就
O_SYNC
而言,ftruncate是否被认为是一种“写操作”?
linux
、
file-io
、
posix
、
durability
当写入使用
O_SYNC
打开的文件时,当写调用返回时,数据(和元数据)保证写入持久存储,不需要显式的fsync调用。 ftruncate也是如此吗?还是我仍然需要在ftruncate之后打电话给
O_SYNC
,即使使用
O_SYNC
浏览 15
提问于2022-10-25
得票数 1
回答已采纳
3
回答
如果将()写入同一页两次,
Linux
脏页写回行为
linux
、
linux-kernel
我理解默认的写()行为(如果没有使用O_DIRECT或
O_SYNC
打开文件,等等)在
Linux
上是缓存的,写-写操作在页面缓存中被推迟.我猜想
Linux
内核可能正在执行以下操作之一:( b)前面的脏页被覆盖,pd刷新只在次要写()到磁盘之后刷新缓冲区。
c
)我可能犯了根本错误,因为第二次写()使用了一个新页。
浏览 11
提问于2014-09-15
得票数 2
回答已采纳
1
回答
如何通过mmap映射内存指针立即刷新写入?
linux
、
pointers
、
caching
、
memory
、
mmap
我的配置是不对称的,一个处理器运行
Linux
,另一个处理器运行裸机应用程序。它们通过一个不在
Linux
虚拟内存空间中的RAM块进行通信(它被devicetree文件排除在外)。当我的用户空间
Linux
应用程序使用从mmap()返回的指针写入内存时,第二个处理器可能需要100ms到超过1秒的时间来检测更改后的内存内容。在对/dev/mem的open()调用中,我尝试指定O_RDRW、
O_SYNC
和O_DIRECT,但O_DIRECT导致打开失败,因此我删除了O_DIRECT。我认为
O_SYNC</
浏览 1
提问于2013-12-24
得票数 5
1
回答
Linux
内核模块编译错误:函数“open”的隐式声明
c
、
linux
、
linux-kernel
、
kernel-module
, numberOpens); fd = open (real_device, O_RDWR | O_NOCTTY |
O_SYNC
我包括了所有必需的头文件:#include <
linux
/module.h>#include <
lin
浏览 3
提问于2017-04-12
得票数 2
点击加载更多
相关
资讯
Linux C/C+调试的那些“歪门邪道”
Android C++系列:Linux信号(三)
linux下安装oracle12c
分享:C语言编程——LINUX 多线程
Linux C加加 类之构造函数!
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
语音识别
活动推荐
运营活动
广告
关闭
领券