首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
sendfile专题
Linux 的 splice 和sendfile系统调用
出自:http://hi.baidu.com/widebright/item/f2e98bcb64239e46a9ba948e 都是为了减少用户和内核直接的数据复制的, 就是所谓的 “zero copy”。 普通的 read 和write系统调用,数据需要从内核空间复制到用户空间的。 sendfile http://linux.die.net/man/2
阅读更多...
文件IO内存零拷贝之-sendfile
如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰到没有充分理解这个问题的人们。因此,我决定写一些文章略微深入的讲述这个问题,希望能将这个有用的特性解释清楚。在本文中,将从用户空间应用程序的角度来阐述这个问题,因此有意忽略了复杂的内核实现。 什么是”零拷贝” 为了更好的理解问题的解决法,我们首先需要理解问题本身。首先我们以一个网络服务守护进程为例,考虑它在将存储在文件中的信息通过
阅读更多...
从零手写实现 nginx-10-sendfile 零拷贝 zero-copy
前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 如果你对 nginx 原理感兴趣,可以阅读: 从零手写实现
阅读更多...
零拷贝,sendfile与mmap
sendfile Java中通过FIleChannel的transferFrom transferTo接口调用 sendfile是去掉了两次用户空间和内核空间的copy,节省了一次系统调用 copy在内核执行:kernel buffer->socket buffer,如果硬件支持 scatter-n-gather,这次copy也可以省了,通过DM
阅读更多...
nginx sendfile
http模块中有一个sendfile指令,默认开启的 简单来说就是启用sendfile()系统调用来替换read()和write()调用,减少系统上下文切换从而提高性能, 当 nginx 是静态文件服务器时,能极大提高nginx的性能表现, 而当 nginx 是反向代理服务器时,则没什么用了。下面我们来分析一下这个sendfile的工作原理: 首先我们需要知道sendfile()和read()
阅读更多...
深入理解网络 I/O:mmap、sendfile、Direct I/O
🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏:网络 I/O 🤔 我当前正在学习微服务领域、云原生领域、消息中间件等架构、原理知识 💬 向我询问任何您想要的东西,ID:vnjohn 🔥觉得博主文章写的还 OK,能够帮助到您的
阅读更多...
Nginx(十二) gzip gzip_static sendfile directio aio 组合使用测试(2)
测试10:开启gzip、sendfile、aio、directio=1m,关闭gzip_static,请求/index.js {"time_iso8601":"2023-11-30T17:20:55+08:00","request_uri":"/index.js","status":"200","bytes_sent":"244539","request_time":"0.000","gzi
阅读更多...
Nginx(九) aio sendfile directio 组合使用测试(2)
测试7:开启directio=2m、sendfile,关闭aio,请求/vendor.js {"time_iso8601":"2023-11-26T15:09:45+08:00","request_uri":"/vendor.js","status":"200","bytes_sent":"1925621","request_time":"11.731","gzip_ratio":"",}
阅读更多...
高级I/O函数pipe,dup,readv,splice,sendfile,tee,fcntl
pipe函数 用于创建一个管道,实现进程间通信。 #include<unistd.h> int pipe(int fd[2]); dup函数和dup2函数 有时我们希望把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接(比如CGI编程),可以通过dup和dup2实现 看个例子: server.c #include<sys/socket.h>#include
阅读更多...
FreeBSD sendfile(2)函数只写文件权限绕过安全限制漏洞
导读: 涉及程序: FreeBSD 描述: FreeBSD sendfile(2)函数只写文件权限绕过安全限制漏洞 详细: FreeBSD就是一种运行在Intel平台上、可以自由使用的开放源码Unix类系统。 FreeBSD在处理文件的访问控制时存在漏洞,本地攻击者可能利用此漏洞获取敏感信息。 当进程打开文件(和其他文件系统对象,如目
阅读更多...