日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux Kernel 4.1:新特性與優(yōu)化 (linux kernel 4.1)

Linux Kernel是一個開源的Unix操作系統(tǒng)內核,由Linus Torvalds在1991年開始主持制作,它是一個高度可配置和可移植的系統(tǒng)內核。近期,linux kernel 4.1版本發(fā)布了,這個版本作出了很多重要的特性和性能優(yōu)化。本篇文章將會介紹這些新特性和性能優(yōu)化。

創(chuàng)新互聯(lián)公司長期為千余家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為汨羅企業(yè)提供專業(yè)的網(wǎng)站設計、網(wǎng)站制作,汨羅網(wǎng)站改版等技術服務。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1. 系統(tǒng)能耗優(yōu)化

Linux Kernel 4.1版本在系統(tǒng)能耗優(yōu)化方面進行了很多工作。特別是ARM64平臺上的優(yōu)化。內核在識別CPU類型時,添加了一個判斷是否是能降低電壓的CPU類型,從而實現(xiàn)了很好的能耗管理。同時,內核還支持能耗口后臺處理,此功能是基于wakeup events API實現(xiàn)的。內核會檢測被標記為能耗型的任務,并在其進行調度時改變CPU頻率。這樣就實現(xiàn)了很好的節(jié)能效果。

2. Devicetree支持

Devicetree是一種硬件描述的方式,可以用于描述復雜且動態(tài)的嵌入式系統(tǒng)。它提供了一種方式,使得啟動時任何設備都可以被正確地初始化,從而使開發(fā)人員可以使用相對少量的硬件知識創(chuàng)建一個系統(tǒng)。Linux Kernel 4.1在Devicetree方面進行了大量的優(yōu)化和改進,這意味著發(fā)現(xiàn)和添加支持新硬件的過程變得更加簡單和高效。

3. BPF(Berkeley Packet Filter)開發(fā)

Linux Kernel 4.1版本在BPF方面的工作主要集中在API的增強上。BPF API是內核中一個非常重要的組件,它用于執(zhí)行用戶態(tài)代碼以完成網(wǎng)絡過濾等操作。該API通過支持新的32位指令,增強了自己的功能。BPF API在新版本中變得更加強大。

4. 文件系統(tǒng)優(yōu)化

Linux Kernel 4.1版本在文件系統(tǒng)方面進行了很多優(yōu)化,如XFS文件系統(tǒng)上的改進,這使得從和向文件寫入數(shù)據(jù)變得更加高效。同時,該版本還提供了Btrfs文件系統(tǒng)的重大改進和增強,包括對多個硬盤的支持和對標記日志記錄的支持。這意味著Btrfs文件系統(tǒng)現(xiàn)在可以確定哪個副本是最近的,并在下一次啟動時自動重建其鏡像。

5. 安全性增強

隨著軟件攻擊和數(shù)據(jù)泄露事件的增多,內核在安全性方面也進行了很多改進。Linux Kernel 4.1版本在SELinux方面進行了大量的工作,此外,這個版本還為內核添加了透明加密支持。透明加密是一種數(shù)據(jù)加密技術,它將加密和解密過程隱藏在應用程序之后。這樣,用戶可以在不知道數(shù)據(jù)已經(jīng)被加密的情況下對其進行操作。

6. 內存管理優(yōu)化

內存管理是一個非常重要的和復雜的話題。Linux Kernel 4.1版本在內存管理方面也作出了很多改進和優(yōu)化。它提供了更好的內存回收機制,并且支持更智能的頁面分配算法。此外,Linux系統(tǒng)現(xiàn)在支持一種新的模式,即大頁模式。這種模式通過使用大頁框架來節(jié)省內存開銷,從而提高系統(tǒng)的效率。

在這篇文章中,我們介紹了Linux Kernel 4.1版本的一些新特性和性能優(yōu)化。這個版本作出了很多大的改進,優(yōu)化了許多關鍵部分,如系統(tǒng)能耗、文件系統(tǒng)、設備樹支持等等。同時,該版本增強了安全性和內存管理。Linux Kernel 4.1是一個非常出色的版本,非常值得用戶掌握。

相關問題拓展閱讀:

  • 如何選擇一個 Linux Tracer

如何選擇一個 Linux Tracer

tracer 是一個高級的性能分析和診斷工具,但是不要讓這名詞唬住你,如果你使用過 strace 和tcpdump,其實你就已經(jīng)使用過 tracer 了。系統(tǒng) tracer 可以獲取更多的系統(tǒng)調用和數(shù)據(jù)包。它們通常能跟蹤任意的內核和應用程序。

有太多的 linux tracer 可以選擇。每一種都有其官方的(或非官方的)的卡通的獨角獸吉祥物,足夠撐起一臺”兒童劇”了。

那么我們應該使用哪個 tracer 呢?

我會為兩類讀者回答這個問題,大部分人和性能/內核工程師。過一段時間這些可能會發(fā)生變化,我會持續(xù)跟進并補充,大概會一年更新一次。

多數(shù)人

多數(shù)人 (開發(fā)者,系統(tǒng)管理員,開發(fā)管理者,運維人員,評測人員,等等) 不關心系統(tǒng)追蹤器的細節(jié)。下面是對于追蹤器你應該知道和做的:

1. 使用perf_events分析CPU性能

使用 perf_events 做 CPU 性能分析。性能指標可以使用flame graph 等工具做可視化。

git clone –depth 1

perf record -F 99 -a -g — sleep 30

perf script | ./FlameGraph/stackcollapse-perf.pl | ./FlameGraph/flamegraph.pl > perf.svg

Linux perf_events (又稱 “perf”,同命令名) 是 Linux 用戶的官方追蹤器和性能分析器。內置于內核代碼,有很好維護(近來獲得快速增強),通常通過 linux 命令行工具包添加。

perf 有很多功能,如果只能推薦一個,我選擇 CPU 性能分析。盡陵友管這只是采樣,而不是從技術上追蹤事件。最難的部分是獲取完整的棧和信息,我為 java 和 node.js 做的一個演講 Linux Profiling at Netflix中已經(jīng)說過這個問題

2.了解其他的Tracer

正如我一個朋友說的:“你不需要知道如何操作 X 射線機器,但是一旦你吞了一枚硬幣,你得知道這得去做 X 射線”,你應該了解各種 tracer 都能做什么,這樣就能在你工作中真正需要 tracer 的時候,你既可以選擇稍后學習使用,也可以雇相應的人來完成。

簡短來說:幾乎所有的東西都可以使用 tracer 來尺手槐進行分析和跟蹤。如,文件系統(tǒng),網(wǎng)絡處理器,硬件驅動器,全部的應用程序??梢钥匆幌挛业膫€人網(wǎng)站上關于 ftrace的文章,還有我寫的薯螞關于perf_events 文檔介紹,可以做為一個追蹤(或者性能分析)的例子。

3. 尋求前端支持工具

如果你正想買一個能支持跟蹤 Linux 的性能分析工具(有許多賣這類工具的公司)。想像一下,只需要直接點擊一下界面就能“洞察”整個系統(tǒng)內核,包括隱藏的不同堆棧位置的熱圖,我在Monitorama talk 中介紹了一個這樣帶圖形界面的工具。

我開源了一些我自己開發(fā)的前端工具,盡管只是 CLI (命令行界面)而不是(圖形界面)。這些工具也會讓人們更加快速容易的使用 tracer。比如下面的例子,用我的 perf_tool,跟蹤一個新進程:

# ./execsnoopTracing exec()s. Ctrl-C to end.

PID PPID ARGS

man ls

preconv -e UTF-8

pager -s

nroff -mandoc -rLL=164n -rLT=164n -Tutf8

在 Netflix 上,我們創(chuàng)建了一個 Vector,一個分析工具的實例同時也是 Linux 上的 tracer 的最終前端。

致性能或內核工程師

我們的工作變的越來越困難,很多的人會問我們怎么樣去追蹤,哪種路徑可以用!為了正確理解一個路徑,你經(jīng)常需要花上至少100個小時才能做到。理解所有的 linux 路徑去做出理性的決定是一個浩大的工程。(我可能是唯一一個接近做到這件事情的人)

這里是我的建議,可以二選其一:

A) 選中一個全能的路徑,并且使它標準化,這將涉及花費大量的時間去弄清楚它在測試環(huán)境中的細微差別和安全性。我現(xiàn)在推薦 SystemTap 的最新版本(ie,從源代碼構建)。我知道有些公司已經(jīng)選用 LTTng,而且他們用的很好,盡管它不是非常的強大(雖然它更安全)。Sysdig 可以成為另一個候選如果它可以增加追蹤點或者 kprobes。

B) 遵循我上面提供的流程圖,它將意味著盡可能更多的使用 ftrace 或者 perf_event, eBPF 會得到整合,之后其他的路徑像 SystemTap/LTTng 會去填補這個空白。這就是我目前在 Netflix 做的工作。

tracer 的評論:

1. ftrace

我喜歡用 ftrace,它是內核 hacker 的首選,內置于系統(tǒng)內核,可以使用跟蹤點(靜態(tài)檢查點),能調用內核 kprobes 和 uprobes 調試工具。并且提供幾個這樣的功能:帶可選過濾器和參數(shù)的事件追蹤功能;在內核中進行統(tǒng)計的事件計數(shù)和定時功能;還有函數(shù)流程遍歷的功能??梢钥匆幌聝群舜a中 ftrace.txt 例子了解一下。ftrace 由 /sys 控制,僅支持單一的 root 用戶使用(但是你可以通過緩沖區(qū)實例破解以支持多用戶)。某些時候 Ftrace 的操作界面非常繁瑣,但是的確非?!癶ack”,而且它有前端界面。Steven Rostedt,ftace 的主要作者,創(chuàng)建了 trace-cmd 命令工具,而我創(chuàng)建了 perf 的工具集。我對這個工具更大的不滿就是它不可編程。舉例來說,你不能保存和獲取時間戳,不能計算延遲,不能把這些計算結果保存成直方圖的形式。你需要轉儲事件至用戶級別,并且花一些時間去處理結果。ftrace 可以通過 eBPF 變成可編程的。

2.perf_events

perf_events 是 Linux 用戶的主要跟蹤工具,它內置在內核源碼中,通常通過 linux-tools-commom 加入。也稱“perf”,同前端工具名稱,通常用來跟蹤和轉儲信息到一個叫做 perf.data 的文件中,perf.data 文件相當于一個動態(tài)的緩沖區(qū),用來保存之后需要處理的結果。ftrace 能做到的,perf_events 大都也可以做到,perf-events 不能做函數(shù)流程遍歷,少了一點兒“hack”勁兒(但是對于安全/錯誤檢查有更好的支持)。它可以進行 CPU 分析和性能統(tǒng)計,用戶級堆棧解析,也可以使用對于跟蹤每行局部變量產(chǎn)生的調試信息。它也支持多用戶并發(fā)操作。和 ftrace 一樣也不支持可編程。如果要我只推薦一款 tracer,那一定是 perf 了。它能解決眾多問題,并且它相對較安全。

3. eBPF

extended Berkeley Packet Filter(eBPF)是一個可以在事件上運行程序的高效內核虛擬機(JIT)。它可能最終會提供 ftrace 和 perf_events 的內核編程,并強化其他的 tracer。這是 Alexei Starovoitov 目前正在開發(fā)的,還沒有完全集成,但是從4.1開始已經(jīng)對一些優(yōu)秀的工具有足夠的內核支持了,如塊設備I/O的延遲熱圖??蓞⒖计渲饕髡?Alexei Starovoitov 的BPF slides和eBPF samples。

4. SystemTap

SystemTap 是最強大的tracer。它能做所有事情,如概要分析,跟蹤點,探針,uprobes(來自SystemTap),USDT和內核編程等。它將程序編譯為內核模塊,然后加載,這是一種獲取安全的巧妙做法。它也是從tree發(fā)展而來,在過去有很多問題(多的可怕)。很多不是 SystemTap 本身的錯——它常常是之一個使用內核追蹤功能,也是之一個碰到 bug 的。SystemTap 的最新版本好多了(必須由源代碼編譯),但是很多人仍然會被早期版本嚇到。如果你想用它,可先在測試環(huán)境中使用,并與irc.freenode.net上 的 #systemtap 開發(fā)人員交流。(Netflix 有容錯機制,我們已經(jīng)使用了 SystemTap,但是可能我們考慮的安全方面的問題比你們少。)我更大的不滿是,它似乎認為你有常常沒有的內核 debug 信息。實際上沒有它也能做很多事情,但是缺少文檔和例子(我必須自己全靠自己開始學習)。

5. LTTng

LTTng 優(yōu)化了事件采集,這比其他 tracers 做得好。它從 tree 發(fā)展而來,它的核心很簡單:通過一組小規(guī)模的固定指令集將事件寫入追蹤緩沖區(qū),這種方式使它安全、快速,缺點是它沒有內核編碼的簡單途徑。我一直聽說這不是一個大問題,因為盡管需要后期處理,它也已經(jīng)優(yōu)化到可以充分的度量。此外,它還首創(chuàng)了一個不同的分析技術,更多對所有關注事件的黑盒記錄將稍后以 GUI 的方式進行研究。我關心的是前期沒有考慮到要錄制的事件缺失問題如何解決,但我真正要做的是花更多時間來看它在實踐中用的怎么樣。這是我花的時間最少的一個 tracer(沒有什么特殊原因)。

6. Ktap

ktap 在過去是一款前景很好的 tracer,它使用內核中的 lua 虛擬機處理,在沒有調試信息的情況下在嵌入式設備上運行的很好。它分為幾個步驟,并在有一段時間似乎超過了 Linux 上所有的追蹤器。然后 eBPF 開始進行內核集成,而 ktap 的集成在它可以使用 eBPF 替代它自己的虛擬機后才開始。因為 eBPF 仍將持續(xù)集成幾個月,ktap 開發(fā)者要繼續(xù)等上一段時間。我希??今年晚些時候它能重新開發(fā)。

7. dtrace4linux

dtrace4linux 主要是 Paul Fox 一個人在業(yè)余時間完成的,它是 Sun DTrace 的 Linux 版本。它引入矚目,還有一些 provider 可以運行,但是從某種程度上來說還不完整,更多的是一種實驗性的工具(不安全)。我認為,顧忌到許可問題,人們會小心翼翼的為 dtrace4linux 貢獻代碼:由于當年 Sun 開源DTrace 使用的是 CDDL 協(xié)議,而 dtrace4linux 也不大可能最終進入 Linux kernel。Paul 的方法很可能會使其成為一個 add-on。我很樂意看到 Linux 平臺上的 DTrace 和這個項目的完成,我認為當我加入 Netflix 后將會花些時間來協(xié)助完成這個項目。然而,我還是要繼續(xù)使用內置的 tracers,如 ftrace 和 perf_events。

8.OL DTrace

Oracle Linux DTrace為了將 DTrace 引入 Linux,特別是 Oracle Linux,做出了很大的努力。這些年來發(fā)布的多個版本表明了它的穩(wěn)定進展。開發(fā)者們以一種對這個項目的前景看好的態(tài)度談論著改進 DTrace 測試套件。很多有用的 provider 已經(jīng)完成了,如:syscall, profile, sdt, proc, sched 以及 USDT。我很期待 fbt(function boundary tracing, 用于內核動態(tài)跟蹤)的完成,它是 Linux 內核上非常棒的 provider。OL DTrace 最終的成功將取決于人們對運行 Oracle Linux(為技術支持付費)有多大興趣,另一方面取決于它是否完全開源:它的內核元件是開源的,而我沒有看到它的用戶級別代碼。

9. sysdig

sysdig是一個使用類tcpdump語法來操作系統(tǒng)事件的新tracer,它使用lua提交進程。它很優(yōu)秀,它見證了系統(tǒng)跟蹤領域的變革。它的局限性在于它只在當前進行系統(tǒng)調用,在提交進行時將所有事件轉儲為用戶級別。你可以使用系統(tǒng)調用做很多事情,然而我還是很希望它能支持跟蹤點、kprobe和uprobe。我還期待它能支持eBPF做內核摘要。目前,sysdig開發(fā)者正在增加容器支持。留意這些內容。

延伸閱讀

我關于 tracer 的工作包括:

ftrace:我的 perf-tools工具集(參考實例目錄);我在 lwn.net 上的 關于ftrace的文章;LISA14的發(fā)言;還有帖子:函數(shù)計數(shù), iosnoop,opensnoop,execsnoop,TCP轉發(fā), uprobes 以及USDT。

perf_evenets:我的網(wǎng)頁 perf_events實例;SCALE上的發(fā)言Netflix的Linux性能分析;還有帖子CPU采樣,靜態(tài)追蹤點,熱點圖,計數(shù),內核行追蹤,off-CPU時間圖。

eBPF:帖子eBPF:邁出一小步,和一些BPF工具(我需要發(fā)布更多)。

SystemTap:我很久以前寫了一篇有點過期的帖子使用SystemTap。最近,我發(fā)布了一些工具systemtap-lwtools來演示如何在沒有內核診斷信息的情況下使用SystemTap。

LTTng:我只花了一點時間,還不足以發(fā)表任何內容。

ktap:我的網(wǎng)頁ktap實例包含一些早期版本的單行小程序和腳本。

dtrace4linux:我在系統(tǒng)性能一書中給出了一些實例,并曾經(jīng)開發(fā)了一些小的修復程序,如timestamps。

OL DTrace:由于它直接由DTrace轉變而來,很多我早期關于DTrace的工作都有相關性(如果在這里給出鏈接的話就太多了,可以在我的主頁上搜索)。當它更完善時,我會開發(fā)一些特殊工具。

sysdig:我向 fileslower 和 subsecond offset spectrogram 貢獻了代碼。

其他:我寫了關于strace 的注意事項。

請不要有更多的 tracer!如果你想知道為什么 Linux 不僅僅只有一個 tracer,或者只用本身的DTrace,你可以在我的演講稿從DTrace到Linux中找到答案,從28張幻燈片開始。

關于linux kernel 4.1的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

成都服務器租用選創(chuàng)新互聯(lián),先試用再開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。物理服務器托管租用:四川成都、綿陽、重慶、貴陽機房服務器托管租用。


分享文章:Linux Kernel 4.1:新特性與優(yōu)化 (linux kernel 4.1)
當前地址:http://www.dlmjj.cn/article/cdeoidg.html