linux伺服器內存異常,究竟在哪消耗了2.5G?

2020-12-11 51CTO

linux伺服器內存異常,究竟在哪消耗了2.5G?

今天這個問題是未解之謎,還是挺神奇的,一起來看看吧~以下是一臺2核4G的伺服器,其中伺服器上沒運行任何程序,但4G內存就用了2.5G

作者:波波說運維來源:今日頭條|2020-07-28 09:48

概述

今天這個問題是未解之謎,還是挺神奇的,一起來看看吧~

1、問題說明

以下是一臺2核4G的伺服器,其中伺服器上沒運行任何程序,但4G內存就用了2.5G

這裡用vmstat間隔5秒統計一次,共統計6次

2、查看內存詳細信息

cat /proc/cpuinfo

  1. [root@EPMSDB tuned]# cat /proc/meminfo 
  2. MemTotal:        3882316 kB 
  3. MemFree:         1174264 kB 
  4. MemAvailable:    1084616 kB 
  5. Buffers:               0 kB 
  6. Cached:            67764 kB 
  7. SwapCached:            0 kB 
  8. Active:            51984 kB 
  9. Inactive:          56356 kB 
  10. Active(anon):      40888 kB 
  11. Inactive(anon):    16864 kB 
  12. Active(file):      11096 kB 
  13. Inactive(file):    39492 kB 
  14. Unevictable:           0 kB 
  15. Mlocked:               0 kB 
  16. SwapTotal:       2097148 kB 
  17. SwapFree:        2097148 kB 
  18. Dirty:                 0 kB 
  19. Writeback:             0 kB 
  20. AnonPages:         40540 kB 
  21. Mapped:            22772 kB 
  22. Shmem:             17176 kB 
  23. Slab:              25928 kB 
  24. SReclaimable:      10688 kB 
  25. SUnreclaim:        15240 kB 
  26. KernelStack:        1936 kB 
  27. PageTables:         3072 kB 
  28. NFS_Unstable:          0 kB 
  29. Bounce:                0 kB 
  30. WritebackTmp:          0 kB 
  31. CommitLimit:     4038304 kB 
  32. Committed_AS:     260036 kB 
  33. VmallocTotal:   34359738367 kB 
  34. VmallocUsed:      150720 kB 
  35. VmallocChunk:   34359341052 kB 
  36. HardwareCorrupted:     0 kB 
  37. AnonHugePages:      8192 kB 
  38. HugePages_Total:       0 
  39. HugePages_Free:        0 
  40. HugePages_Rsvd:        0 
  41. HugePages_Surp:        0 
  42. Hugepagesize:       2048 kB 
  43. DirectMap4k:       51136 kB 
  44. DirectMap2M:     4143104 kB 

3、手動釋放內存

手動釋放緩存後還是佔用2.5G空間。

4、查看進程內存

  1.  
  2. ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head 

可以發現其中tuned佔用內存比較多

5、考慮重啟tuned進程

RHEL/CentOS 在 6.3 版本以後引入了一套新的系統調優工具 tuned/tuned-adm,其中 tuned 是服務端程序。

Tuned本質上是一個Linux環境中的後臺進程,在運行過程中依據配置內容監控調整系統。監控程序會根據監控的配置內容,監控進程會持續監控結果反饋,調整優化策略。

直接停止tuned進程後無效,還是2.5G佔用

  1. systemctl stop tuned 

6、考慮是否有僵死進程

無僵死進程

  1. lsof|grep deleted 

目前還不知道這2.5G究竟消耗到哪了...莫非是顯存問題?但伺服器重啟後卻恢復正常了,繼續觀察..

【編輯推薦】

【責任編輯:

未麗燕

TEL:(010)68476606】

點讚 0

相關焦點

  • 記一次優化Linux伺服器swap內存過高問題 - 51CTO.COM
    記一次優化Linux伺服器swap內存過高問題 今天收到zabbix告警,有點奇怪的是swap內存使用很高,但實際使用內存卻不多,下面一起來看看吧。
  • 漫畫| 一臺Linux伺服器最多能支撐多少個TCP連接?
    那就是一臺伺服器最大究竟能支持多少個網絡連接?我想我有必要單獨發一篇文章來好好說一下這個問題。 很多同學看到這個問題的第一反應是65535。原因是:「聽說埠號最多有65535個,那長連接就最多保持65535個了」。是這樣的嗎?還有的人說:「應該受TCP連接裡四元組的空間大小限制,算起來是200多萬億個!」
  • 嵌入式Linux內存管理的一些知識點總結
    這個內存管理的知識點還真的需要我們專門的去理解一下,今天大家一起來學習學習嵌入式Linux內存管理的知識。1.不涉及linux內核的彙編知識,僅C語言層面解析1.回答:彙編主要處理的是寄存器地址(包括內容)的計算,進行一部分的地址轉換工作(當然,它是重要的);C語言處理了極大部分的系統內存管理工作。
  • 系統內存/進程內存知識掃盲
    Linux的內存管理和相關概念要比Windows複雜一些,而且還有一些區別,有悖於平時的理解,而做性能測試的同學都知道,很多時候性能測試的伺服器都是linux
  • 每個程式設計師都該了解一點 Linux 內存管理知識
    一般遇到這種情況,運維和相關的研發人員都會查看在線的日誌服務,必要的話還會登錄到生產環境的伺服器上去一看究竟。這次略有不同。通過 ping 可以知道這臺伺服器還「活著」,但是無法通過 ssh 登錄,網絡鏈路確認了沒有問題,在線系統日誌也查不出什麼端倪。排除了所有的可能性之後,我們只能認為,這臺伺服器不僅幹掉了我們部署的服務,而且幹掉了 sshd 進程。
  • Linux下找出吃內存的方法總結
    linux下查詢進程佔用的內存方法總結,假設現在有一個「php-cgi」的進程 ,進程id為「25282」。
  • 雲伺服器linux是什麼系統
    雲伺服器linux是什麼系統?Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的作業系統。相比 Windows 系統,雲伺服器使用 Linux 系統有更好的穩定性,以及其他很多優點。
  • Linux內存、Swap、Cache、Buffer
    2. Buffer和Cache介紹    解釋:內存可能不夠了,才會佔Swap,所以Swap可以作為伺服器監控的一項指標,引起注意。  4.  (2) 清理buffers/cache:  sync; sync; sync;&& echo 3 >/proc/sys/vm/drop_caches sleep 2 echo 0 > /proc/sys/vm/drop_caches  操作說明:  sync
  • linux下的DHCP伺服器的配置
    linux現在主要的應用在伺服器上。而作為伺服器,Web,dhcp,和dns又是網際網路上最主要的服務,這一講,我和朋友們討論dhcp的應用。
  • 郭健:Linux內存管理系統參數配置之OOM(內存耗盡)
    按照慣例,最後一章是參考文獻,本文的參考文獻都是來自linux內核的Documentation目錄,該目錄下有大量的文檔可以參考,每一篇都值得細細品味。二、什麼是OOMOOM就是out of memory的縮寫,雖然linux kernel有很多的內存管理技巧(從cache中回收、swap out等)來滿足各種應用空間的vm內存需求,但是,當你的系統配置不合理,讓一匹小馬拉大車的時候,linux kernel會運行非常緩慢並且在某個時間點分配page frame的時候遇到內存耗盡、無法分配的狀況
  • 終身保固的金士頓DDR4伺服器內存體驗
    伺服器內存條一般的用戶了解的都比較少一些,DIY玩家和一些硬體工程師或許知道的更多一些,那麼伺服器內存和普通的PC內存有什麼區別呢?另一方面,伺服器內存目前大多數已經是標配雙面內存顆粒,網絡上很多人都在討論是否雙面的性能好,穩定呢?這其實在很多DELL、HP的機器中大家就會發現雙面的內存的確很穩定。這條金士頓 DDR4 8G ECC 2133校驗伺服器內存就是雙面設計。
  • Linux如何調試內存洩漏
    內存洩漏並非指內存在物理上的消失,而是應用程式分配某段內存後,由於設計錯誤,導致在釋放該段內存之前就失去了對該段內存的控制,從而造成了內存的浪費。我們平時開發過程中不可避免的會遇到內存洩漏問題,你是如何排查的呢?估計你是使用下面這幾個工具吧?
  • 如何測試和調試Linux的Apache伺服器
    Apache是運行在Linux作業系統上的頭號Web伺服器。SOct071:53 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DAPACHE2   ...   上面這段輸出顯示了單個httpd進程使用了50 MB的RSS(駐留集大小)內存(或者非交換物理內存),以及149 MB的VSZ(虛擬)內存。這當然在很大程度上取決於你在Apache裡加載和運行的模塊數量。
  • Linux平臺中調試C/C++內存洩漏方法 (騰訊和MTK面試的時候問到的)
    c/c++ linux後臺伺服器開發學習地址:https://ke.qq.com/course/417774?
  • 想配臺伺服器需要注意什麼?教你伺服器各項指標怎麼選
    我們個人電腦是有配置的,同樣的伺服器也是有配置的,而且伺服器的使用傾向不同,所以選購的時候指標和普通的電腦不太一樣。伺服器的選擇指標主要有:帶寬,作業系統,機房,硬碟,內存,cpu等。伺服器是用來做什麼用途的,是做網頁還是遊戲,要是網頁是靜態還是偽靜態,要運行什麼樣的程序,需要什麼樣的運行環境等等。2. 用戶的訪問量和並發,伺服器每天的訪問人數大概是多少,同時在線的人數是多少要大概有個預判。3. 運行的程序有多大,是否會隨著時間慢慢的增大。4.
  • Linux內核中的內存管理
    在多CPU系統中,每個CPU對應一個node用於描述該CPU所「擁有」的內存區域。這裡說的「擁有」是指與該CPU具有最佳親緣性的內存區域,該CPU訪問這些內存時將獲得最高的性能。一塊CPU也可以訪問*非*它所「擁有」的內存區域,但訪問「非擁有內存區域」的性能不如訪問「擁有的內存區域」的性能。
  • 10 張圖解再談 Linux 物理內存和虛擬內存
    夥伴系統因為任何正整數都可以由 2^n 的和組成,所以總能找到合適大小的內存塊分配出去,減少了外部碎片產生 。一般來說,內核對象的生命周期是這樣的:分配內存-初始化-釋放內存,內核中有大量的小對象,比如文件描述結構對象、任務描述結構對象,如果按照夥伴系統按頁分配和釋放內存,對小對象頻繁的執行「分配內存-初始化-釋放內存」會非常消耗性能。
  • RedHat6.2伺服器配置方案大全(五):Squid
    作者:湯海京第五章Squid5.1簡介作為一種免費的網絡作業系統,Linux越來越受到廣大網絡愛好者的歡迎,目前網際網路(Internet)上運行的主機有相當一部分採用的就是linux作業系統,而且中國已經把linux作業系統作為政府上網年的指定網絡作業系統,種種跡象表明,
  • 如何用十條命令在一分鐘內檢查 Linux 伺服器性能
    通過這三個數據,可以了解伺服器負載是在趨於緊張還是趨於緩解。如果1分鐘平均負載很高,而15分鐘平均負載很低,說明伺服器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪裡。反之,如果15分鐘平均負載很高,1分鐘平均負載較低,則有可能是CPU資源緊張時刻已經過去。
  • ARM Linux異常處理之data abort
    ,會跳轉到不同的指令分支,www.linuxidc.com這些指令分支緊跟在vector_stub宏定義的後面。2 svc模式進入data abortsvc模式進入data abort,也就是Linux的內核模式進入data aboart時,會跳轉到__dabt_svc。