鍍金池/ 教程/ Linux/ 系統(tǒng)調(diào)用sendfile
信號
創(chuàng)建目錄權(quán)限
示例程序
進程的定義
Hello World進程
創(chuàng)建進程
進程鎖
第四章 項目實例Run
Nohup命令
PID
前言
系統(tǒng)調(diào)用sendfile
進程參數(shù)
參考書籍
后記
進程狀態(tài)
本書概述
寫時復(fù)制(Copy On Write)
Docker簡介
第五章 注意事項
實現(xiàn)Run
孤兒進程概念
共享內(nèi)存
衍生(Spawn)新進程
PPID
第三章 進程進階
退出碼
簡介
進程文件
Thanks for reading!
項目學(xué)習(xí)
第一章 進程基礎(chǔ)
僵尸進程
系統(tǒng)調(diào)用
POSIX簡介
執(zhí)行(Exec)外部程序
文件描述符
進程名字
進程輸入與輸出
Cgroups
進程間通信
查看PID
死鎖概念
進程越多越好?
Run項目架構(gòu)
  • 1.
復(fù)制(Fork)進程
第二章 Go編程實例
活鎖概念
守護(Daemon)進程
并發(fā)與并行
捕獲SIGKILL
Namespaces簡介

系統(tǒng)調(diào)用sendfile

系統(tǒng)調(diào)用sendfile

Sendfile是Linux實現(xiàn)的系統(tǒng)調(diào)用,可以通過避免文件在內(nèi)核態(tài)和用戶態(tài)的拷貝來優(yōu)化文件傳輸?shù)男省?/p>

其中大名鼎鼎的分布式消息隊列服務(wù)Kafka就使用sendfile來優(yōu)化效率,具體用法可參見其官方文檔。

優(yōu)化策略

在普通進程中,要從磁盤拷貝數(shù)據(jù)到網(wǎng)絡(luò),其實是需要通過系統(tǒng)調(diào)用,進程也會反復(fù)在用戶態(tài)和內(nèi)核態(tài)切換,頻繁的數(shù)據(jù)傳輸在此有效率問題。因此我們必須意識到Linux給我們提供了sendfile這樣的系統(tǒng)調(diào)用,可以提高進程的數(shù)據(jù)傳輸效率。