chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

linux內(nèi)存性能優(yōu)化介紹

科技綠洲 ? 來(lái)源:Linux開(kāi)發(fā)架構(gòu)之路 ? 作者:Linux開(kāi)發(fā)架構(gòu)之路 ? 2023-11-10 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【1】?jī)?nèi)存映射

Linux 內(nèi)核給每個(gè)進(jìn)程都提供了一個(gè)獨(dú)立且連續(xù)的虛擬地址空間,以便進(jìn)程可以方便地訪問(wèn)虛擬內(nèi)存;虛擬地址空間的內(nèi)部又被分為內(nèi)核空間和用戶空間兩部分,不同字長(zhǎng)的處理器,地址空間的范圍也不同;圖示為 32 位和 64 位系統(tǒng)的虛擬地址空間;

圖片

內(nèi)存映射是將虛擬內(nèi)存地址映射到物理內(nèi)存地址,內(nèi)核為每個(gè)進(jìn)程都維護(hù)了一張頁(yè)表,記錄虛擬地址與物理地址的映射關(guān)系;

圖片

頁(yè)表存儲(chǔ)在 CPU 的內(nèi)存管理單元 MMU 中,正常情況下,處理器就可以直接通過(guò)硬件,找出要訪問(wèn)的內(nèi)存;當(dāng)進(jìn)程訪問(wèn)的虛擬地址在頁(yè)表中不存在時(shí),系統(tǒng)會(huì)產(chǎn)生一個(gè)缺頁(yè)異常,進(jìn)入內(nèi)核空間分配物理內(nèi)存、更新進(jìn)程頁(yè)表,最后再返回用戶空間,恢復(fù)進(jìn)程的運(yùn)行;

TLB (Translation Lookaside Buffer,轉(zhuǎn)譯后備緩沖器) 是 MMU 中頁(yè)表的高速緩存,由于進(jìn)程的虛擬地址空間是獨(dú)立的,而 TLB 的訪問(wèn)速度又比 MMU 快得多,因此通過(guò)減少進(jìn)程的上下文切換,減少 TLB 的刷新次數(shù),可以提高 TLB 緩存的使用率,進(jìn)而提高 CPU 的內(nèi)存訪問(wèn)性能;

MMU 規(guī)定了內(nèi)存映射的最小單位,即頁(yè),通常是 4 KB 大小,每一次內(nèi)存映射,都需要關(guān)聯(lián) 4KB 或者 4KB 整數(shù)倍的內(nèi)存空間;

多級(jí)頁(yè)表就是把內(nèi)存分成區(qū)塊來(lái)管理,將原來(lái)的映射關(guān)系改成區(qū)塊索引和區(qū)塊內(nèi)的偏移;由于虛擬內(nèi)存空間通常只用了很少一部分,多級(jí)頁(yè)表就只保存這些使用中的區(qū)塊,從而大大地減少頁(yè)表的項(xiàng)數(shù),Linux 四級(jí)頁(yè)表管理內(nèi)存頁(yè)圖示

圖片

大頁(yè),即比普通頁(yè)更大的內(nèi)存塊,常見(jiàn)的大小有 2MB 和 1GB;

【2】虛擬內(nèi)存空間分布

32 位系統(tǒng)中用戶空間的分段示意圖

圖片

    1. 只讀段,包括代碼和常量等
    1. 數(shù)據(jù)段,包括全局變量等
    1. 堆,包括動(dòng)態(tài)分配的內(nèi)存,從低地址開(kāi)始向上增長(zhǎng)
    1. 文件映射段,包括動(dòng)態(tài)庫(kù)、共享內(nèi)存等,從高地址開(kāi)始向下增長(zhǎng)
    1. 棧,包括局部變量和函數(shù)調(diào)用的上下文等,棧的大小是固定的,一般是 8 MB

【3】?jī)?nèi)存的分配與回收

內(nèi)存分配

小塊內(nèi)存 (小于 128K),使用 brk() 來(lái)分配,即通過(guò)移動(dòng)堆頂?shù)奈恢脕?lái)分配內(nèi)存,這些內(nèi)存釋放后并不會(huì)立刻歸還系統(tǒng),而是被緩存起來(lái),以便重復(fù)使用;

  • brk() 方式分配內(nèi)存,可以減少缺頁(yè)異常的發(fā)生,提高內(nèi)存訪問(wèn)效率;由于這些內(nèi)存沒(méi)有歸還系統(tǒng),在內(nèi)存工作繁忙時(shí),頻繁的內(nèi)存分配和釋放會(huì)造成內(nèi)存碎片;

大塊內(nèi)存 (大于 128K),使用內(nèi)存映射 mmap() 來(lái)分配,即在文件映射段找一塊空閑內(nèi)存分配出去

  • mmap() 方式分配內(nèi)存,會(huì)在釋放時(shí)直接歸還系統(tǒng),因此 mmap 會(huì)發(fā)生缺頁(yè)異常;在內(nèi)存工作繁忙時(shí),頻繁的內(nèi)存分配會(huì)導(dǎo)致大量的缺頁(yè)異常,使內(nèi)核的管理負(fù)擔(dān)增大;

內(nèi)存回收

回收緩存,如使用 LRU (Least Recently Used) 算法,回收最近使用最少的內(nèi)存頁(yè)面;

回收不常訪問(wèn)的內(nèi)存,把不常用的內(nèi)存通過(guò)交換分區(qū)直接寫(xiě)到磁盤(pán)中;

  • 交換分區(qū) (Swap) 即把一塊磁盤(pán)空間當(dāng)成內(nèi)存來(lái)用;把進(jìn)程暫時(shí)不用的數(shù)據(jù)存儲(chǔ)到磁盤(pán)中(換出),當(dāng)進(jìn)程訪問(wèn)這些內(nèi)存時(shí),再?gòu)拇疟P(pán)讀取這些數(shù)據(jù)到內(nèi)存中 (換入)

殺死進(jìn)程,內(nèi)存緊張時(shí)系統(tǒng)還會(huì)通過(guò) OOM (Out of Memory),直接殺掉占用大量?jī)?nèi)存的進(jìn)程;

內(nèi)核的一種保護(hù)機(jī)制,監(jiān)控進(jìn)程的內(nèi)存使用情況,并且使用 oom_score 為每個(gè)進(jìn)程的內(nèi)存使用情況進(jìn)行評(píng)分;

  • 一個(gè)進(jìn)程消耗的內(nèi)存越大,oom_score 就越大;
  • 一個(gè)進(jìn)程運(yùn)行占用的 CPU 越多,oom_score 就越小;
  • 管理員可以通過(guò) /proc 文件系統(tǒng),手動(dòng)設(shè)置進(jìn)程的 oom_adj,從而調(diào)整進(jìn)程的 oom_score;

oom_adj 的范圍是 [-17, 15],數(shù)值越大,表示進(jìn)程越容易被 OOM 殺死;數(shù)值越小,表示進(jìn)程越不容易被 OOM 殺死,其中 -17 表示禁止 OOM;

【4】buffer/cache

Buffer 是內(nèi)核緩沖區(qū)用到的內(nèi)存,對(duì)應(yīng)的是 /proc/meminfo 中的 Buffers 值;

Cache 是內(nèi)核頁(yè)緩存和 Slab 用到的內(nèi)存,對(duì)應(yīng)的是 /proc/meminfo 中的 Cached 與 SReclaimable 之和;

  • Buffers 是對(duì)原始磁盤(pán)塊的臨時(shí)存儲(chǔ),即用來(lái)緩存磁盤(pán)的數(shù)據(jù),通常不會(huì)特別大 (20MB 左右);從而內(nèi)核可以把分散的寫(xiě)集中起來(lái),統(tǒng)一優(yōu)化磁盤(pán)的寫(xiě)入,比如可以把多次小的寫(xiě)合并成單次大的寫(xiě)等等;

Buffer 既可以用作 “將要寫(xiě)入磁盤(pán)數(shù)據(jù)的緩存”,也可以用作 “從磁盤(pán)讀取數(shù)據(jù)的緩存”

  • Cached 是從磁盤(pán)讀取文件的頁(yè)緩存,即用來(lái)緩存從文件讀取的數(shù)據(jù);從而,下次訪問(wèn)這些文件數(shù)據(jù)時(shí),就可以直接從內(nèi)存中快速獲取,而不需要再次訪問(wèn)緩慢的磁盤(pán);

實(shí)際上,Cache 也會(huì)緩存寫(xiě)文件時(shí)的數(shù)據(jù)

Cache 既可以用作 “從文件讀取數(shù)據(jù)的頁(yè)緩存”,也可以用作 “寫(xiě)文件的頁(yè)緩存”

  • SReclaimable 是 Slab 的一部分,Slab 包括兩部分,其中的可回收部分,用 SReclaimable 記錄;而不可回收部分,用 SUnreclaim 記錄;

【5】?jī)?nèi)存泄漏

棧內(nèi)存由系統(tǒng)自動(dòng)分配和管理,一旦程序運(yùn)行超出了這個(gè)局部變量的作用域,棧內(nèi)存就會(huì)被系統(tǒng)自動(dòng)回收,不會(huì)產(chǎn)生內(nèi)存泄漏的問(wèn)題;

堆內(nèi)存由應(yīng)用程序分配和管理,除非程序退出,這些堆內(nèi)存并不會(huì)被系統(tǒng)自動(dòng)釋放,而是需要應(yīng)用程序明確調(diào)用庫(kù)函數(shù) free() 釋放,如果應(yīng)用程序沒(méi)有正確釋放堆內(nèi)存,就會(huì)造成內(nèi)存泄漏;

只讀段,包括程序的代碼和常量,由于是只讀的,不會(huì)再去分配新的內(nèi)存,不會(huì)產(chǎn)生內(nèi)存泄漏;

數(shù)據(jù)段,包括全局變量和靜態(tài)變量,這些變量在定義時(shí)就已經(jīng)確定了大小,不會(huì)產(chǎn)生內(nèi)存泄漏;

內(nèi)存映射段,包括動(dòng)態(tài)鏈接庫(kù)和共享內(nèi)存,其中共享內(nèi)存由程序動(dòng)態(tài)分配和管理,若程序在分配后忘了回收,就會(huì)導(dǎo)致泄漏問(wèn)題;

【6】Swap 知識(shí)點(diǎn)

Swap 即把一塊磁盤(pán)空間或者一個(gè)本地文件當(dāng)成內(nèi)存來(lái)使用,包括換出和換入兩個(gè)過(guò)程;

  • 換出,即把進(jìn)程暫時(shí)不用的內(nèi)存數(shù)據(jù)存儲(chǔ)到磁盤(pán)中,并釋放這些數(shù)據(jù)占用的內(nèi)存;
  • 換入,即在進(jìn)程再次訪問(wèn)這些內(nèi)存的時(shí)候,把它們從磁盤(pán)讀到內(nèi)存中來(lái);

NUMA 與 Swap

NUMA (Non-Uniform Memory Access) 架構(gòu),在 NUMA 架構(gòu)下,多個(gè)處理器被劃分到不同 Node 上,且每個(gè) Node 都擁有自己的本地內(nèi)存空間,而同一個(gè) Node 內(nèi)部的內(nèi)存空間,又可以進(jìn)一步分為不同的內(nèi)存域(Zone);

某個(gè) Node 內(nèi)存不足時(shí),系統(tǒng)可以從其他 Node 尋找空閑內(nèi)存,也可以從本地內(nèi)存中回收內(nèi)存;可以通過(guò)
/proc/sys/vm/zone_reclaim_mode 來(lái)選擇模式,支持以下幾個(gè)選項(xiàng);

  • 默認(rèn)的 0,表示既可以從其他 Node 尋找空閑內(nèi)存,也可以從本地回收內(nèi)存;
  • 1、2、4 都表示只回收本地內(nèi)存,2 表示可以回寫(xiě)臟數(shù)據(jù)回收內(nèi)存,4 表示可以用 Swap 方式回收內(nèi)存;

swappiness

  • 對(duì)文件頁(yè)的回收,即直接回收緩存,或者把臟頁(yè)寫(xiě)回磁盤(pán)后再回收;
  • 對(duì)匿名頁(yè)的回收,即通過(guò) Swap 機(jī)制,把它們寫(xiě)入磁盤(pán)后再釋放內(nèi)存;

Linux 提供了 /proc/sys/vm/swappiness 選項(xiàng),用來(lái)調(diào)整使用 Swap 的積極程度,swappiness 的范圍是 0-100,數(shù)值越大,越積極使用 Swap,即更傾向于回收匿名頁(yè);數(shù)值越小,越消極使用 Swap,即更傾向于回收文件頁(yè);

降低 Swap 的使用,可以提高系統(tǒng)的整體性能

  1. 禁止 Swap,現(xiàn)在服務(wù)器的內(nèi)存足夠大,所以除非有必要,禁用 Swap 即可,隨著云計(jì)算的普及,大部分云平臺(tái)中的虛擬機(jī)都默認(rèn)禁止 Swap;
  2. 若實(shí)在需要用到 Swap,可以嘗試降低 swappiness 的值,減少內(nèi)存回收時(shí) Swap 的使用傾向;
  3. 響應(yīng)延遲敏感的應(yīng)用,如果它們可能在開(kāi)啟 Swap 的服務(wù)器中運(yùn)行,你還可以用庫(kù)函數(shù) mlock() 或者 mlockall() 鎖定內(nèi)存,阻止它們的內(nèi)存換出;

【7】Linux 回收內(nèi)存的時(shí)機(jī)

在內(nèi)存資源緊張時(shí),Linux 通過(guò)直接內(nèi)存回收和定期掃描的方式,釋放文件頁(yè)和匿名頁(yè),以便把內(nèi)存分配給更需要的進(jìn)程使用;

直接內(nèi)存回收,存在新的大塊內(nèi)存分配請(qǐng)求,但是剩余內(nèi)存不足,此時(shí)系統(tǒng)就需要回收一部分內(nèi)存,進(jìn)而盡可能地滿足新內(nèi)存請(qǐng)求;

kswapd0 內(nèi)核線程,用于定期回收內(nèi)存,kswapd0 定義了三個(gè)內(nèi)存閾值,分別是頁(yè)最小閾值 (pages_min)、頁(yè)低閾值(pages_low) 和頁(yè)高閾值(pages_high);pages_free 表示剩余內(nèi)存;

圖片

  • 剩余內(nèi)存小于頁(yè)最小閾值,說(shuō)明進(jìn)程可用內(nèi)存都耗盡了,只有內(nèi)核才可以分配內(nèi)存;
  • 剩余內(nèi)存落在頁(yè)最小閾值和頁(yè)低閾值中間,說(shuō)明內(nèi)存壓力比較大,剩余內(nèi)存不多了;這時(shí) kswapd0 會(huì)執(zhí)行內(nèi)存回收,直到剩余內(nèi)存大于高閾值為止;
  • 剩余內(nèi)存落在頁(yè)低閾值和頁(yè)高閾值中間,說(shuō)明內(nèi)存有一定壓力,但還可以滿足新內(nèi)存請(qǐng)求;
  • 剩余內(nèi)存大于頁(yè)高閾值,說(shuō)明剩余內(nèi)存比較多,沒(méi)有內(nèi)存壓力;

頁(yè)低閾值可以通過(guò)內(nèi)核選項(xiàng)
/proc/sys/vm/min_free_kbytes 來(lái)間接設(shè)置,min_free_kbytes 設(shè)置了頁(yè)最小閾值,而其他兩個(gè)閾值,都是根據(jù)頁(yè)最小閾值計(jì)算生成,如下

pages_low  = pages_min * 5 / 4
pages_high = pages_min * 3 / 2

性能指標(biāo)與工具總結(jié)

圖片

圖片

實(shí)戰(zhàn)記錄

【1】free 命令

圖片

  • total 總內(nèi)存大小;
  • used 已使用內(nèi)存的大小,包含了共享內(nèi)存;
  • free 未使用內(nèi)存的大??;
  • shared 共享內(nèi)存的大?。?/li>
  • buff/cache 緩存和緩沖區(qū)的大?。?/li>
  • available 新進(jìn)程可用內(nèi)存的大??;

【2】top 命令

圖片

VIRT 是進(jìn)程虛擬內(nèi)存的大小,只要是進(jìn)程申請(qǐng)過(guò)的內(nèi)存,即便還沒(méi)有真正分配物理內(nèi)存,也會(huì)計(jì)算在內(nèi);

RES 是常駐內(nèi)存的大小,即進(jìn)程實(shí)際使用的物理內(nèi)存大小,但不包括 Swap 和共享內(nèi)存;

SHR 是共享內(nèi)存的大小,比如與其他進(jìn)程共同使用的共享內(nèi)存、加載的動(dòng)態(tài)鏈接庫(kù)以及程序的代碼段等;

%MEM 是進(jìn)程使用物理內(nèi)存占系統(tǒng)總內(nèi)存的百分比;

注意

    1. 虛擬內(nèi)存通常并不會(huì)全部分配物理內(nèi)存;
    1. 共享內(nèi)存 SHR 并不一定是共享的,如程序的代碼段、非共享的動(dòng)態(tài)鏈接庫(kù),也都算在 SHR 里;

【3】磁盤(pán)和文件寫(xiě)案例

【3.1】案例一,寫(xiě)文件

測(cè)試命令
$ dd if=/dev/urandom of=/tmp/file bs=1M count=500

監(jiān)控命令
vmstat 2

圖片

    1. 在 Cache 剛開(kāi)始增長(zhǎng)時(shí),塊設(shè)備 I/O 很少,而過(guò)一段時(shí)間后,才會(huì)出現(xiàn)大量的塊設(shè)備寫(xiě);
    1. 當(dāng) dd 命令結(jié)束后,Cache 不再增長(zhǎng),但塊設(shè)備寫(xiě)還會(huì)持續(xù)一段時(shí)間,并且多次 I/O 寫(xiě)的結(jié)果加起來(lái)是 dd 要寫(xiě)的 500M 的數(shù)據(jù);

【3.2】案例二,寫(xiě)磁盤(pán)

測(cè)試命令
# 運(yùn)行dd命令向磁盤(pán)分區(qū)/dev/sdb1寫(xiě)入2G數(shù)據(jù)
$ dd if=/dev/urandom of=/dev/sdb1 bs=1M count=2048

監(jiān)控命令
vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
1  0      0 7584780 153592  97436    0    0   684     0   31  423  1 48 50  2  0
 1  0      0 7418580 315384 101668    0    0     0     0   32  144  0 50 50  0  0
 1  0      0 7253664 475844 106208    0    0     0     0   20  137  0 50 50  0  0
 1  0      0 7093352 631800 110520    0    0     0     0   23  223  0 50 50  0  0
 1  1      0 6930056 790520 114980    0    0     0 12804   23  168  0 50 42  9  0
 1  0      0 6757204 949240 119396    0    0     0 183804   24  191  0 53 26 21  0
 1  1      0 6591516 1107960 123840    0    0     0 77316   22  232  0 52 16 33  0
    1. 寫(xiě)磁盤(pán)時(shí) (即 bo 大于 0 時(shí)),Buffer 和 Cache 都在增長(zhǎng),但顯然 Buffer 的增長(zhǎng)快得多;

【4】磁盤(pán)和文件讀案例

【4.1】案例一、讀文件

測(cè)試命令
# 運(yùn)行dd命令讀取文件數(shù)據(jù)
$ dd if=/tmp/file of=/dev/null

監(jiān)控命令
vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  1      0 7724164   2380 110844    0    0 16576     0   62  360  2  2 76 21  0
 0  1      0 7691544   2380 143472    0    0 32640     0   46  439  1  3 50 46  0
 0  1      0 7658736   2380 176204    0    0 32640     0   54  407  1  4 50 46  0
 0  1      0 7626052   2380 208908    0    0 32640    40   44  422  2  2 50 46  0
  • 讀取文件時(shí) (即 bi 大于 0 時(shí)),Buffer 保持不變,而 Cache 則在不停增長(zhǎng);

【4.2】案例二、讀磁盤(pán)

測(cè)試命令
# 運(yùn)行dd命令讀取文件
$ dd if=/dev/sda1 of=/dev/null bs=1M count=1024

監(jiān)控命令
vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0      0 7225880   2716 608184    0    0     0     0   48  159  0  0 100  0  0
 0  1      0 7199420  28644 608228    0    0 25928     0   60  252  0  1 65 35  0
 0  1      0 7167092  60900 608312    0    0 32256     0   54  269  0  1 50 49  0
 0  1      0 7134416  93572 608376    0    0 32672     0   53  253  0  0 51 49  0
 0  1      0 7101484 126320 608480    0    0 32748     0   80  414  0  1 50 49  0
  • 讀磁盤(pán)時(shí) (也就是 bi 大于 0 時(shí)),Buffer 和 Cache 都在增長(zhǎng),但顯然 Buffer 的增長(zhǎng)快很多;

附錄

【1】文件系統(tǒng)與磁盤(pán)的區(qū)別

磁盤(pán)是一個(gè)存儲(chǔ)設(shè)備(塊設(shè)備),可以被劃分為不同的磁盤(pán)分區(qū),而在磁盤(pán)或者磁盤(pán)分區(qū)上,還可以再創(chuàng)建文件系統(tǒng),并掛載到系統(tǒng)的某個(gè)目錄中,這樣,系統(tǒng)就可以通過(guò)這個(gè)掛載目錄,來(lái)讀寫(xiě)文件;即磁盤(pán)是存儲(chǔ)數(shù)據(jù)的塊設(shè)備,也是文件系統(tǒng)的載體;文件系統(tǒng)需要通過(guò)磁盤(pán),來(lái)保證數(shù)據(jù)的持久化存儲(chǔ);

在讀寫(xiě)普通文件時(shí),I/O 請(qǐng)求會(huì)首先經(jīng)過(guò)文件系統(tǒng),然后由文件系統(tǒng)負(fù)責(zé),來(lái)與磁盤(pán)進(jìn)行交互;在讀寫(xiě)塊設(shè)備文件時(shí),會(huì)跳過(guò)文件系統(tǒng),直接與磁盤(pán)交互,也就是所謂的 “裸 I/O”;

【2】統(tǒng)計(jì)所有進(jìn)程的物理內(nèi)存使用量

每個(gè)進(jìn)程的 PSS ,是指把共享內(nèi)存平分到各個(gè)進(jìn)程后,再加上進(jìn)程本身的非共享內(nèi)存大小的和;

# 使用grep查找Pss指標(biāo)后,再用awk計(jì)算累加值
$ grep Pss /proc/[1-9]*/smaps | awk '{total+=$2}; END {printf "%d kBn", total }'
391266 kB
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235298
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213840
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3125

    瀏覽量

    75274
  • 緩存
    +關(guān)注

    關(guān)注

    1

    文章

    246

    瀏覽量

    27184
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    linux內(nèi)存相關(guān)知識(shí)科普

    linux 內(nèi)存組織結(jié)構(gòu)和頁(yè)面布局,內(nèi)存碎片產(chǎn)生原因和優(yōu)化算法。
    發(fā)表于 08-08 10:57 ?491次閱讀

    走進(jìn)Linux內(nèi)存系統(tǒng)探尋內(nèi)存管理的機(jī)制和奧秘

    Linux 內(nèi)存是后臺(tái)開(kāi)發(fā)人員,需要深入了解的計(jì)算機(jī)資源。合理的使用內(nèi)存,有助于提升機(jī)器的性能和穩(wěn)定性。本文主要介紹
    的頭像 發(fā)表于 01-05 09:47 ?1961次閱讀

    關(guān)于Linux內(nèi)存管理的詳細(xì)介紹

    Linux內(nèi)存管理是指對(duì)系統(tǒng)內(nèi)存的分配、釋放、映射、管理、交換、壓縮等一系列操作的管理。在Linux中,內(nèi)存被劃分為多個(gè)區(qū)域,每個(gè)區(qū)域有不同
    發(fā)表于 03-06 09:28 ?1219次閱讀

    Linux內(nèi)存相關(guān)知識(shí)科普

    Linux 內(nèi)存是后臺(tái)開(kāi)發(fā)人員,需要深入了解的計(jì)算機(jī)資源。合理的使用內(nèi)存,有助于提升機(jī)器的性能和穩(wěn)定性。本文主要介紹**Linu****x
    發(fā)表于 07-25 14:43 ?882次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)存</b>相關(guān)知識(shí)科普

    查看Linux系統(tǒng)內(nèi)存使用情況的幾種方法

    Linux系統(tǒng)中,內(nèi)存監(jiān)控是優(yōu)化系統(tǒng)性能的關(guān)鍵。本文為你介紹12種方法,幫助你全面掌握Linux
    的頭像 發(fā)表于 11-13 09:30 ?1.5w次閱讀
    查看<b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>內(nèi)存</b>使用情況的幾種方法

    HarmonyOS優(yōu)化應(yīng)用內(nèi)存占用問(wèn)題性能優(yōu)化

    應(yīng)用開(kāi)發(fā)過(guò)程中注重內(nèi)存管理,積極采取措施來(lái)減少內(nèi)存占用,以優(yōu)化應(yīng)用程序的性能和用戶體驗(yàn)。 HarmonyOS提供了一些內(nèi)存管理的工具和接口,
    發(fā)表于 05-21 11:27

    HarmonyOS優(yōu)化應(yīng)用內(nèi)存占用問(wèn)題性能優(yōu)化

    ,不同系統(tǒng)的閾值不同)時(shí),系統(tǒng)可能會(huì)認(rèn)為應(yīng)用存在嚴(yán)重的內(nèi)存問(wèn)題,并可能會(huì)強(qiáng)制殺死該應(yīng)用進(jìn)程,以保證設(shè)備系統(tǒng)的穩(wěn)定性和性能。為了避免應(yīng)用被系統(tǒng)殺死,開(kāi)發(fā)者可以考慮以下兩點(diǎn): 優(yōu)化資源使用:通過(guò)合理設(shè)置圖片
    發(fā)表于 05-24 17:20

    Linux系統(tǒng)的性能優(yōu)化策略

    近年來(lái),世界上許多大軟件公司紛紛推出各種Linux服務(wù)器系統(tǒng)及Linux下的應(yīng)用軟件。目前,Linux 已可以與各種傳統(tǒng)的商業(yè)操作系統(tǒng)分庭抗禮,在服務(wù)器市場(chǎng),占據(jù)了相當(dāng)大的份額。本文分別從磁盤(pán)調(diào)優(yōu),文件系統(tǒng),
    發(fā)表于 07-16 06:23

    基于Linux的Socket網(wǎng)絡(luò)編程的性能優(yōu)化

    基于Linux的Socket網(wǎng)絡(luò)編程的性能優(yōu)化 隨著Intenet的日益發(fā)展和普及,網(wǎng)絡(luò)在嵌入式系統(tǒng)中應(yīng)用非常廣泛,越來(lái)越多的嵌入式設(shè)備采用Linux操作系統(tǒng)。
    發(fā)表于 10-22 20:48 ?1183次閱讀
    基于<b class='flag-5'>Linux</b>的Socket網(wǎng)絡(luò)編程的<b class='flag-5'>性能</b><b class='flag-5'>優(yōu)化</b>

    linux內(nèi)存管理機(jī)制淺析

    本內(nèi)容介紹了arm linux內(nèi)存管理機(jī)制,詳細(xì)說(shuō)明了linux內(nèi)核內(nèi)存管理,linux虛擬
    發(fā)表于 12-19 14:09 ?73次下載
    <b class='flag-5'>linux</b><b class='flag-5'>內(nèi)存</b>管理機(jī)制淺析

    Linux CPU的性能應(yīng)該如何優(yōu)化

    Linux系統(tǒng)中,由于成本的限制,往往會(huì)存在資源上的不足,例如 CPU、內(nèi)存、網(wǎng)絡(luò)、IO 性能。本文,就對(duì) Linux 進(jìn)程和 CPU 的原理進(jìn)行分析,總結(jié)出 CPU
    的頭像 發(fā)表于 01-18 08:52 ?3733次閱讀

    一文解析Linux內(nèi)存系統(tǒng)

    Linux 內(nèi)存是后臺(tái)開(kāi)發(fā)人員,需要深入了解的計(jì)算機(jī)資源。合理的使用內(nèi)存,有助于提升機(jī)器的性能和穩(wěn)定性。本文主要介紹
    的頭像 發(fā)表于 09-01 10:46 ?2662次閱讀
    一文解析<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)存</b>系統(tǒng)

    Linux系統(tǒng)的共享內(nèi)存的使用

    但有時(shí)候?yàn)榱俗尣煌M(jìn)程之間進(jìn)行通信,需要讓不同進(jìn)程共享相同的物理內(nèi)存,Linux通過(guò) 共享內(nèi)存 來(lái)實(shí)現(xiàn)這個(gè)功能。下面先來(lái)介紹一下Linux
    的頭像 發(fā)表于 11-14 11:55 ?1593次閱讀

    Linux驅(qū)動(dòng)模塊.ko內(nèi)存精簡(jiǎn)優(yōu)化過(guò)程

    Linux 驅(qū)動(dòng)模塊可以獨(dú)立的編譯成 .ko 文件,雖然大小一般只有幾 MB,但對(duì)總內(nèi)存只有幾十 MB 的小型 Linux 系統(tǒng)來(lái)說(shuō),常常也是一個(gè)非常值得優(yōu)化的點(diǎn)。本文以一個(gè)實(shí)際例子,
    發(fā)表于 09-25 09:23 ?2096次閱讀

    Linux內(nèi)核slab性能優(yōu)化的核心思想

    今天分享一篇內(nèi)存性能優(yōu)化的文章,文章用了大量精美的圖深入淺出地分析了Linux內(nèi)核slab性能優(yōu)化
    的頭像 發(fā)表于 11-13 11:45 ?1057次閱讀
    <b class='flag-5'>Linux</b>內(nèi)核slab<b class='flag-5'>性能</b><b class='flag-5'>優(yōu)化</b>的核心思想