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

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

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

Linux 性能優(yōu)化總結(jié)!2

jf_78858299 ? 來(lái)源:Linux技術(shù)迷 ? 作者:Linux技術(shù)迷 ? 2023-05-12 15:16 ? 次閱讀

內(nèi)存

Linux內(nèi)存是怎么工作的

內(nèi)存映射

大多數(shù)計(jì)算機(jī)用的主存都是動(dòng)態(tài)隨機(jī)訪問(wèn)內(nèi)存(DRAM),只有內(nèi)核才可以直接訪問(wèn)物理內(nèi)存。Linux內(nèi)核給每個(gè)進(jìn)程提供了一個(gè)獨(dú)立的虛擬地址空間,并且這個(gè)地址空間是連續(xù)的。這樣進(jìn)程就可以很方便的訪問(wèn)內(nèi)存(虛擬內(nèi)存)。

虛擬地址空間的內(nèi)部分為內(nèi)核空間和用戶空間兩部分,不同字長(zhǎng)的處理器地址空間的范圍不同。32位系統(tǒng)內(nèi)核空間占用1G,用戶空間占3G。64位系統(tǒng)內(nèi)核空間和用戶空間都是128T,分別占內(nèi)存空間的最高和最低處,中間部分為未定義。

并不是所有的虛擬內(nèi)存都會(huì)分配物理內(nèi)存,只有實(shí)際使用的才會(huì)。分配后的物理內(nèi)存通過(guò)內(nèi)存映射管理。為了完成內(nèi)存映射,內(nèi)核為每個(gè)進(jìn)程都維護(hù)了一個(gè)頁(yè)表,記錄虛擬地址和物理地址的映射關(guān)系。頁(yè)表實(shí)際存儲(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)行。

MMU以頁(yè)為單位管理內(nèi)存,頁(yè)大小4KB。為了解決頁(yè)表項(xiàng)過(guò)多問(wèn)題Linux提供了多級(jí)頁(yè)表和HugePage的機(jī)制。

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

用戶空間內(nèi)存從低到高是五種不同的內(nèi)存段:

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

分配

malloc 對(duì)應(yīng)到系統(tǒng)調(diào)用上有兩種實(shí)現(xiàn)方式:

  • brk() 針對(duì)小塊內(nèi)存(<128K),通過(guò)移動(dòng)堆頂位置來(lái)分配。

    內(nèi)存釋放后不立即歸還內(nèi)存,而是被緩存起來(lái)。

  • mmap() 針對(duì)大塊內(nèi)存(>128K),直接用內(nèi)存映射來(lái)分配,即在文件映射段找一塊空閑內(nèi)存分配。

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

后者在釋放時(shí)直接歸還系統(tǒng),所以每次mmap都會(huì)發(fā)生缺頁(yè)異常。

在內(nèi)存工作繁忙時(shí),頻繁內(nèi)存分配會(huì)導(dǎo)致大量缺頁(yè)異常,使內(nèi)核管理負(fù)擔(dān)增加。

上述兩種調(diào)用并沒(méi)有真正分配內(nèi)存,這些內(nèi)存只有在首次訪問(wèn)時(shí),才通過(guò)缺頁(yè)異常進(jìn)入內(nèi)核中,由內(nèi)核來(lái)分配

回收

內(nèi)存緊張時(shí),系統(tǒng)通過(guò)以下方式來(lái)回收內(nèi)存:

  • 回收緩存:LRU算法回收最近最少使用的內(nèi)存頁(yè)面;
  • 回收不常訪問(wèn)內(nèi)存:把不常用的內(nèi)存通過(guò)交換分區(qū)寫入磁盤
  • 殺死進(jìn)程:OOM內(nèi)核保護(hù)機(jī)制(進(jìn)程消耗內(nèi)存越大 oom_score 越大,占用 CPU 越多 oom_score 越小,可以通過(guò) /proc 手動(dòng)調(diào)整 oom_adj)
echo -16 > /proc/$(pidof XXX)/oom_adj

如何查看內(nèi)存使用情況

free來(lái)查看整個(gè)系統(tǒng)的內(nèi)存使用情況

top/ps來(lái)查看某個(gè)進(jìn)程的內(nèi)存使用情況

  • VIRT 進(jìn)程的虛擬內(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)存的百分比

怎樣理解內(nèi)存中的Buffer和Cache?

buffer是對(duì)磁盤數(shù)據(jù)的緩存,cache是對(duì)文件數(shù)據(jù)的緩存,它們既會(huì)用在讀請(qǐng)求也會(huì)用在寫請(qǐng)求中

如何利用系統(tǒng)緩存優(yōu)化程序的運(yùn)行效率

緩存命中率

緩存命中率是指直接通過(guò)緩存獲取數(shù)據(jù)的請(qǐng)求次數(shù),占所有請(qǐng)求次數(shù)的百分比。命中率越高說(shuō)明緩存帶來(lái)的收益越高,應(yīng)用程序的性能也就越好。

安裝bcc包后可以通過(guò)cachestat和cachetop來(lái)監(jiān)測(cè)緩存的讀寫命中情況。

安裝pcstat后可以查看文件在內(nèi)存中的緩存大小以及緩存比例

#首先安裝Goexport GOPATH=~/goexport PATH=~/go/bin:$PATHgo get golang.org/x/sys/unixgo ge github.com/tobert/pcstat/pcstat

dd緩存加速

dd if=/dev/sda1 of=file bs=1M count=512 #生產(chǎn)一個(gè)512MB的臨時(shí)文件echo 3 > /proc/sys/vm/drop_caches #清理緩存pcstat file #確定剛才生成文件不在系統(tǒng)緩存中,此時(shí)cached和percent都是0cachetop 5dd if=file of=/dev/null bs=1M #測(cè)試文件讀取速度#此時(shí)文件讀取性能為30+MB/s,查看cachetop結(jié)果發(fā)現(xiàn)并不是所有的讀都落在磁盤上,讀緩存命中率只有50%。dd if=file of=/dev/null bs=1M #重復(fù)上述讀文件測(cè)試#此時(shí)文件讀取性能為4+GB/s,讀緩存命中率為100%pcstat file #查看文件file的緩存情況,100%全部緩存

O_DIRECT選項(xiàng)繞過(guò)系統(tǒng)緩存

cachetop 5sudo docker run --privileged --name=app -itd feisky/app:io-directsudo docker logs app #確認(rèn)案例啟動(dòng)成功#實(shí)驗(yàn)結(jié)果表明每讀32MB數(shù)據(jù)都要花0.9s,且cachetop輸出中顯示1024次緩存全部命中

但是憑感覺(jué)可知如果緩存命中讀速度不應(yīng)如此慢,讀次數(shù)時(shí)1024,頁(yè)大小為4K,五秒的時(shí)間內(nèi)讀取了1024*4KB數(shù)據(jù),即每秒0.8MB,和結(jié)果中32MB相差較大。說(shuō)明該案例沒(méi)有充分利用緩存,懷疑系統(tǒng)調(diào)用設(shè)置了直接I/O標(biāo)志繞過(guò)系統(tǒng)緩存。因此接下來(lái)觀察系統(tǒng)調(diào)用。

strace -p $(pgrep app)#strace 結(jié)果可以看到openat打開(kāi)磁盤分區(qū)/dev/sdb1,傳入參數(shù)為O_RDONLY|O_DIRECT

這就解釋了為什么讀32MB數(shù)據(jù)那么慢,直接從磁盤讀寫肯定遠(yuǎn)遠(yuǎn)慢于緩存。找出問(wèn)題后我們?cè)倏窗咐脑创a發(fā)現(xiàn)flags中指定了直接IO標(biāo)志。刪除該選項(xiàng)后重跑,驗(yàn)證性能變化。

內(nèi)存泄漏,如何定位和處理?

對(duì)應(yīng)用程序來(lái)說(shuō),動(dòng)態(tài)內(nèi)存的分配和回收是核心又復(fù)雜的一個(gè)邏輯功能模塊。管理內(nèi)存的過(guò)程中會(huì)發(fā)生各種各樣的“事故”:

  • 沒(méi)正確回收分配的內(nèi)存,導(dǎo)致了泄漏
  • 訪問(wèn)的是已分配內(nèi)存邊界外的地址,導(dǎo)致程序異常退出

內(nèi)存的分配與回收

虛擬內(nèi)存分布從低到高分別是只讀段,數(shù)據(jù)段,堆,內(nèi)存映射段,棧五部分。其中會(huì)導(dǎo)致內(nèi)存泄漏的是:

  • 堆:由應(yīng)用程序自己來(lái)分配和管理,除非程序退出這些堆內(nèi)存不會(huì)被系統(tǒng)自動(dòng)釋放。
  • 內(nèi)存映射段:包括動(dòng)態(tài)鏈接庫(kù)和共享內(nèi)存,其中共享內(nèi)存由程序自動(dòng)分配和管理

內(nèi)存泄漏的危害比較大,這些忘記釋放的內(nèi)存,不僅應(yīng)用程序自己不能訪問(wèn),系統(tǒng)也不能把它們?cè)俅畏峙浣o其他應(yīng)用。內(nèi)存泄漏不斷累積甚至?xí)谋M系統(tǒng)內(nèi)存。

如何檢測(cè)內(nèi)存泄漏

預(yù)先安裝systat,docker,bcc

sudo docker run --name=app -itd feisky/app:mem-leaksudo docker logs appvmstat 3

可以看到free在不斷下降,buffer和cache基本保持不變。說(shuō)明系統(tǒng)的內(nèi)存一致在升高。但并不能說(shuō)明存在內(nèi)存泄漏。此時(shí)可以通過(guò)memleak工具來(lái)跟蹤系統(tǒng)或進(jìn)程的內(nèi)存分配/釋放請(qǐng)求

/usr/share/bcc/tools/memleak -a -p $(pidof app)

從 memleak 輸出可以看到,應(yīng)用在不停地分配內(nèi)存,并且這些分配的地址并沒(méi)有被回收。通過(guò)調(diào)用棧看到是 fibonacci 函數(shù)分配的內(nèi)存沒(méi)有釋放。定位到源碼后查看源碼來(lái)修復(fù)增加內(nèi)存釋放函數(shù)即可。

為什么系統(tǒng)的 Swap 變高

系統(tǒng)內(nèi)存資源緊張時(shí)通過(guò)內(nèi)存回收和OOM殺死進(jìn)程來(lái)解決。其中可回收內(nèi)存包括:

  • 緩存/緩沖區(qū),屬于可回收資源,在文件管理中通常叫做文件頁(yè)
    • 在應(yīng)用程序中通過(guò)fsync將臟頁(yè)同步到磁盤
    • 交給系統(tǒng),內(nèi)核線程pdflush負(fù)責(zé)這些臟頁(yè)的刷新
    • 被應(yīng)用程序修改過(guò)暫時(shí)沒(méi)寫入磁盤的數(shù)據(jù)(臟頁(yè)),要先寫入磁盤然后才能內(nèi)存釋放
  • 內(nèi)存映射獲取的文件映射頁(yè),也可以被釋放掉,下次訪問(wèn)時(shí)從文件重新讀取

對(duì)于程序自動(dòng)分配的堆內(nèi)存,也就是我們?cè)趦?nèi)存管理中的匿名頁(yè),雖然這些內(nèi)存不能直接釋放,但是 Linux 提供了 Swap 機(jī)制將不常訪問(wèn)的內(nèi)存寫入到磁盤來(lái)釋放內(nèi)存,再次訪問(wèn)時(shí)從磁盤讀取到內(nèi)存即可。

Swap原理

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

  • 換出:將進(jìn)程暫時(shí)不用的內(nèi)存數(shù)據(jù)存儲(chǔ)到磁盤中,并釋放這些內(nèi)存
  • 換入:進(jìn)程再次訪問(wèn)內(nèi)存時(shí),將它們從磁盤讀到內(nèi)存中

Linux如何衡量?jī)?nèi)存資源是否緊張?

  • 直接內(nèi)存回收新的大塊內(nèi)存分配請(qǐng)求,但剩余內(nèi)存不足。

    此時(shí)系統(tǒng)會(huì)回收一部分內(nèi)存;

  • kswapd0 內(nèi)核線程定期回收內(nèi)存。

    為了衡量?jī)?nèi)存使用情況,定義了pages_min,pages_low,pages_high 三個(gè)閾值,并根據(jù)其來(lái)進(jìn)行內(nèi)存的回收操作。

    • 剩余內(nèi)存 < pages_min,進(jìn)程可用內(nèi)存耗盡了,只有內(nèi)核才可以分配內(nèi)存

    • pages_min < 剩余內(nèi)存 < pages_low,內(nèi)存壓力較大,kswapd0執(zhí)行內(nèi)存回收,直到剩余內(nèi)存 > pages_high

    • pages_low < 剩余內(nèi)存 < pages_high,內(nèi)存有一定壓力,但可以滿足新內(nèi)存請(qǐng)求

    • 剩余內(nèi)存 > pages_high,說(shuō)明剩余內(nèi)存較多,無(wú)內(nèi)存壓力

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

NUMA 與 SWAP

很多情況下系統(tǒng)剩余內(nèi)存較多,但 SWAP 依舊升高,這是由于處理器的 NUMA 架構(gòu)。

在NUMA架構(gòu)下多個(gè)處理器劃分到不同的 Node,每個(gè)Node都擁有自己的本地內(nèi)存空間。在分析內(nèi)存的使用時(shí)應(yīng)該針對(duì)每個(gè)Node單獨(dú)分析

numactl --hardware #查看處理器在Node的分布情況,以及每個(gè)Node的內(nèi)存使用情況

內(nèi)存三個(gè)閾值可以通過(guò) /proc/zoneinfo 來(lái)查看,該文件中還包括活躍和非活躍的匿名頁(yè)/文件頁(yè)數(shù)。

當(dāng)某個(gè)Node內(nèi)存不足時(shí),系統(tǒng)可以從其他Node尋找空閑資源,也可以從本地內(nèi)存中回收內(nèi)存。通過(guò)/proc/sys/vm/zone_raclaim_mode來(lái)調(diào)整。

  • 0表示既可以從其他Node尋找空閑資源,也可以從本地回收內(nèi)存
  • 1,2,4 表示只回收本地內(nèi)存,2表示可以會(huì)回臟數(shù)據(jù)回收內(nèi)存,4表示可以用Swap方式回收內(nèi)存。
swappiness

在實(shí)際回收過(guò)程中Linux根據(jù) /proc/sys/vm/swapiness 選項(xiàng)來(lái)調(diào)整使用Swap的積極程度,從 0-100,數(shù)值越大越積極使用 Swap,即更傾向于回收匿名頁(yè);數(shù)值越小越消極使用 Swap,即更傾向于回收文件頁(yè)。

注意:這只是調(diào)整 Swap 積極程度的權(quán)重,即使設(shè)置為0,當(dāng)剩余內(nèi)存+文件頁(yè)小于頁(yè)高閾值時(shí),還是會(huì)發(fā)生 Swap。

Swap升高時(shí)如何定位分析

free #首先通過(guò)free查看swap使用情況,若swap=0表示未配置Swap#先創(chuàng)建并開(kāi)啟swapfallocate -l 8G /mnt/swapfilechmod 600 /mnt/swapfilemkswap /mnt/swapfileswapon /mnt/swapfile
free #再次執(zhí)行free確保Swap配置成功
dd if=/dev/sda1 of=/dev/null bs=1G count=2048 #模擬大文件讀取sar -r -S 1 #查看內(nèi)存各個(gè)指標(biāo)變化 -r內(nèi)存 -S swap#根據(jù)結(jié)果可以看出,%memused在不斷增長(zhǎng),剩余內(nèi)存kbmemfress不斷減少,緩沖區(qū)kbbuffers不斷增大,由此可知剩余內(nèi)存不斷分配給了緩沖區(qū)#一段時(shí)間之后,剩余內(nèi)存很小,而緩沖區(qū)占用了大部分內(nèi)存。此時(shí)Swap使用之間增大,緩沖區(qū)和剩余內(nèi)存只在小范圍波動(dòng)
停下sar命令cachetop5 #觀察緩存#可以看到dd進(jìn)程讀寫只有50%的命中率,未命中數(shù)為4w+頁(yè),說(shuō)明正式dd進(jìn)程導(dǎo)致緩沖區(qū)使用升高watch -d grep -A 15 ‘Normal’ /proc/zoneinfo #觀察內(nèi)存指標(biāo)變化#發(fā)現(xiàn)升級(jí)內(nèi)存在一個(gè)小范圍不停的波動(dòng),低于頁(yè)低閾值時(shí)會(huì)突然增大到一個(gè)大于頁(yè)高閾值的值

說(shuō)明剩余內(nèi)存和緩沖區(qū)的波動(dòng)變化正是由于內(nèi)存回收和緩存再次分配的循環(huán)往復(fù)。有時(shí)候 Swap 用的多,有時(shí)候緩沖區(qū)波動(dòng)更多。此時(shí)查看 swappiness 值為60,是一個(gè)相對(duì)中和的配置,系統(tǒng)會(huì)根據(jù)實(shí)際運(yùn)行情況來(lái)選去合適的回收類型。

如何“快準(zhǔn)狠”找到系統(tǒng)內(nèi)存存在的問(wèn)題

內(nèi)存性能指標(biāo)

  • 系統(tǒng)內(nèi)存指標(biāo)
  • 已用內(nèi)存/剩余內(nèi)存
  • 共享內(nèi)存 (tmpfs實(shí)現(xiàn))
  • 可用內(nèi)存:包括剩余內(nèi)存和可回收內(nèi)存
  • 緩存:磁盤讀取文件的頁(yè)緩存,slab分配器中的可回收部分
  • 緩沖區(qū):原始磁盤塊的臨時(shí)存儲(chǔ),緩存將要寫入磁盤的數(shù)據(jù)

進(jìn)程內(nèi)存指標(biāo)

  • 虛擬內(nèi)存:5大部分
  • 常駐內(nèi)存:進(jìn)程實(shí)際使用的物理內(nèi)存,不包括Swap和共享內(nèi)存
  • 共享內(nèi)存:與其他進(jìn)程共享的內(nèi)存,以及動(dòng)態(tài)鏈接庫(kù)和程序的代碼段
  • Swap 內(nèi)存:通過(guò)Swap換出到磁盤的內(nèi)存

缺頁(yè)異常

  • 可以直接從物理內(nèi)存中分配,次缺頁(yè)異常
  • 需要磁盤 IO 介入(如 Swap),主缺頁(yè)異常。此時(shí)內(nèi)存訪問(wèn)會(huì)慢很多
內(nèi)存性能工具

根據(jù)不同的性能指標(biāo)來(lái)找合適的工具:

圖片

內(nèi)存分析工具包含的性能指標(biāo):

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • DRAM
    +關(guān)注

    關(guān)注

    40

    文章

    2291

    瀏覽量

    183127
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11171

    瀏覽量

    208471
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7292

    瀏覽量

    87522
  • 虛擬內(nèi)存
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    8044
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux應(yīng)急響應(yīng)命令總結(jié)

    Linux應(yīng)急響應(yīng)命令總結(jié)
    發(fā)表于 11-17 09:08 ?955次閱讀

    HBase性能優(yōu)化方法總結(jié)

    對(duì)于寫密集型提高性能需盡量減少刷寫、合并和拆分的次數(shù),以減少IO壓力,提高系統(tǒng)性能。除了以上方法可以提高HBase性能之外,還可以采用以下方法:1. JVM垃圾回收優(yōu)化
    發(fā)表于 04-20 17:16

    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)大的份額。本文分別從磁盤調(diào)優(yōu),文件系統(tǒng),內(nèi)存管理以及編譯
    發(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 ?1064次閱讀
    基于<b class='flag-5'>Linux</b>的Socket網(wǎng)絡(luò)編程的<b class='flag-5'>性能</b><b class='flag-5'>優(yōu)化</b>

    DSP程序優(yōu)化總結(jié)

    DSP程序優(yōu)化總結(jié)
    發(fā)表于 10-23 14:24 ?2次下載
    DSP程序<b class='flag-5'>優(yōu)化</b><b class='flag-5'>總結(jié)</b>

    linux Android基礎(chǔ)知識(shí)總結(jié)

    linux Android基礎(chǔ)知識(shí)總結(jié)
    發(fā)表于 10-24 09:00 ?6次下載
    <b class='flag-5'>linux</b> Android基礎(chǔ)知識(shí)<b class='flag-5'>總結(jié)</b>

    linux redis基礎(chǔ)命令總結(jié)

    linux redis日常工作命令總結(jié)供大家參考
    發(fā)表于 11-25 18:21 ?1424次閱讀

    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 ?3304次閱讀

    Linux的基礎(chǔ)學(xué)習(xí)筆記資料總結(jié)

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux的基礎(chǔ)學(xué)習(xí)筆記資料總結(jié)包括了:一、 常用命令,二、 磁盤管理,三、 用戶管理,四、 文件權(quán)限,五、 目錄結(jié)構(gòu),六、 軟件安裝,七、 時(shí)間管理,八、 啟動(dòng)引導(dǎo),九
    發(fā)表于 11-13 08:00 ?4次下載

    Linux下Apache性能分析總結(jié)

    Linux下Apache性能分析總結(jié)(深圳核達(dá)中遠(yuǎn)通電源技術(shù)有限公司地址)-該文檔為Linux下Apache性能分析
    發(fā)表于 09-24 14:53 ?2次下載
    <b class='flag-5'>Linux</b>下Apache<b class='flag-5'>性能</b>分析<b class='flag-5'>總結(jié)</b>

    Linux 性能優(yōu)化總結(jié)!1

    應(yīng)用負(fù)載角度:直接影響了產(chǎn)品終端的用戶體驗(yàn) * 系統(tǒng)資源角度:資源使用率、飽和度等 性能問(wèn)題的本質(zhì)就是系統(tǒng)資源已經(jīng)到達(dá)瓶頸,但請(qǐng)求的處理還不夠快,無(wú)法支撐更多的請(qǐng)求。性能分析實(shí)際上就是找出應(yīng)用或系統(tǒng)的瓶頸,設(shè)法去避免或緩解它們。
    的頭像 發(fā)表于 05-12 15:16 ?559次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>性能</b><b class='flag-5'>優(yōu)化</b><b class='flag-5'>總結(jié)</b>!1

    Linux 性能優(yōu)化總結(jié)!3

    存儲(chǔ)需要緩存的數(shù)據(jù),或者用 Redis 外部緩存組件來(lái)優(yōu)化數(shù)據(jù)的訪問(wèn) * cgroups 等方式來(lái)限制進(jìn)程的內(nèi)存使用情況,確保系統(tǒng)內(nèi)存不被異常進(jìn)程耗盡 * /proc/pid/oom_adj 調(diào)整核心應(yīng)用的 oom_score,保證即使內(nèi)存緊張核心應(yīng)用也不會(huì)被OOM殺死
    的頭像 發(fā)表于 05-12 15:17 ?566次閱讀

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

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

    性能優(yōu)化之路總結(jié)

    針對(duì)老項(xiàng)目,去年做了許多降本增效的事情,其中發(fā)現(xiàn)最多的就是接口耗時(shí)過(guò)長(zhǎng)的問(wèn)題,就集中搞了一次接口性能優(yōu)化。本文將給小伙伴們分享一下接口優(yōu)化的通用方案。 ? ? 一、接口優(yōu)化方案
    的頭像 發(fā)表于 06-17 15:00 ?241次閱讀

    如何優(yōu)化Linux服務(wù)器的性能

    優(yōu)化Linux服務(wù)器的性能是一個(gè)綜合性的任務(wù),涉及硬件、軟件、配置、監(jiān)控等多個(gè)方面。以下是一個(gè)詳細(xì)的指南,旨在幫助系統(tǒng)管理員和運(yùn)維人員提升Linux服務(wù)器的
    的頭像 發(fā)表于 09-29 16:50 ?163次閱讀