溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下如何查看內存

發布時間:2022-01-26 09:21:54 來源:億速云 閱讀:242 作者:小新 欄目:開發技術
# Linux下如何查看內存

## 1. 前言

在Linux系統管理和性能調優中,內存監控是至關重要的環節。了解系統內存使用情況不僅能幫助管理員及時發現潛在問題,還能為應用程序優化提供依據。本文將詳細介紹Linux下查看內存的各種方法,包括常用命令、工具解析以及實用技巧。

---

## 2. 基礎命令工具

### 2.1 `free` 命令
最經典的內存查看工具,幾乎所有Linux發行版都預裝。

```bash
free -h

輸出示例:

              total        used        free      shared  buff/cache   available
Mem:           15Gi       4.2Gi       2.1Gi       512Mi       8.7Gi        10Gi
Swap:         2.0Gi       0.0Gi       2.0Gi

參數說明: - -h:人類可讀格式(自動轉換GB/MB) - -s N:每N秒刷新一次 - -t:顯示總計行

關鍵指標解析: - available:真正可用的內存(包含緩存可回收部分) - buff/cache:磁盤緩存和緩沖區占用的內存

2.2 top 命令

實時監控工具,可查看內存動態變化。

top

內存相關字段: - KiB Mem:物理內存使用情況 - KiB Swap:交換分區使用情況 - %MEM:進程內存占用百分比

操作技巧: 1. 按M按內存排序進程 2. 按E切換內存單位(KB/MB/GB)

2.3 vmstat 命令

提供虛擬內存統計信息。

vmstat -s -SM

輸出示例:

      16384 M total memory
       4321 M used memory
       2573 M active memory
       1842 M inactive memory
       2103 M free memory
        512 M buffer memory
       8576 M swap cache

3. 高級監控工具

3.1 /proc/meminfo 文件

最原始的內存數據來源。

cat /proc/meminfo

關鍵字段說明: - MemTotal:總物理內存 - MemFree:完全空閑的內存 - Cached:頁面緩存 - SwapCached:交換緩存 - Active/Inactive:活躍/非活躍內存

3.2 htop 命令

top的增強版,圖形化界面更友好。

htop

優勢特性: - 彩色顯示內存使用比例 - 鼠標直接點擊排序 - 樹狀視圖顯示進程關系

3.3 glances 工具

跨平臺的系統監控工具,需額外安裝。

pip install glances
glances

內存監控特點: - 環形圖直觀展示 - 歷史趨勢記錄 - 警告閾值設置


4. 專業級工具

4.1 smem 命令

專注于內存占用分析。

smem -rs pss

輸出示例:

  PID User     Command                         PSS    USS 
 1234 mysql    /usr/sbin/mysqld               345M   280M
 5678 nginx    nginx: worker process           45M    32M

獨特指標: - PSS:按比例計算的共享內存 - USS:進程獨占內存

4.2 valgrind 工具

主要用于內存泄漏檢測。

valgrind --tool=memcheck ./your_program

4.3 numastat 命令

NUMA架構內存分析。

numastat -m

關鍵指標: - Node 0/1:不同NUMA節點內存分布 - Interleave:交叉分配情況


5. 圖形化工具

5.1 GNOME System Monitor

圖形界面查看: 1. 搜索打開”System Monitor” 2. 選擇”Resources”標簽頁

5.2 KSysGuard

KDE環境下的監控工具: - 可定制監控面板 - 支持遠程監控

5.3 Grafana + Prometheus

企業級監控方案:

# prometheus.yml 配置示例
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

6. 內存泄漏檢測

6.1 使用pmap

查看進程詳細內存映射:

pmap -x 1234

6.2 memtester 工具

內存壓力測試:

memtester 1G 5

6.3 內核OOM日志分析

dmesg | grep -i oom

7. 自動化監控腳本

7.1 定時記錄內存使用

#!/bin/bash
while true; do
    date >> memory.log
    free -m >> memory.log
    sleep 60
done

7.2 內存報警腳本

THRESHOLD=90
CURRENT=$(free | awk '/Mem/{printf("%d"), $3/$2*100}')
if [ $CURRENT -gt $THRESHOLD ]; then
    mail -s "Memory Alert" admin@example.com
fi

8. 性能優化建議

  1. 調整Swappiness

    sysctl vm.swappiness=10
    
  2. 清理緩存

    sync; echo 3 > /proc/sys/vm/drop_caches
    
  3. 大頁內存配置

    grep Huge /proc/meminfo
    
  4. 限制進程內存

    ulimit -v 500000
    

9. 常見問題解答

Q:為什么free顯示的內存幾乎用完了? A:Linux會主動利用空閑內存作緩存,查看available字段才是真實可用內存。

Q:如何檢測內存硬件故障? A:使用memtest86+工具進行完整檢測。

Q:SWAP使用率過高怎么辦? A:1) 增加物理內存 2) 優化應用程序 3) 調整swappiness值


10. 結語

掌握Linux內存監控是系統管理的基本功。建議組合使用多種工具: - 日常監控:htop + glances - 深度分析:smem + vmstat - 長期記錄:Prometheus + Grafana

通過持續監控和分析,可以確保系統始終保持在最佳狀態。

本文檔最后更新:2023年10月
適用系統:RHEL/CentOS 7+, Ubuntu 18.04+
測試命令:GNU bash 5.0+ “`

注:實際字數為約1800字,可通過以下方式擴展: 1. 增加各命令的詳細參數說明 2. 添加更多實際案例 3. 補充不同發行版的差異 4. 加入性能優化案例分析 5. 擴展圖形化工具的截圖說明

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女