Linux系统调优——Memory内存(二)

(1).查看Memory(内存)运行状态相关工具

 1)free命令查看内存使用情况

1
2
3
4
[root@youxi1 ~]# free -m  //-m选项,以MB为单位显示
              total        used        free      shared  buff/cache   available
Mem:           3934         163        3478          11         292        3513
Swap:          2047           0        2047

  在CentOS7中新增了一列available,该列是真正可用内存,其包括了buff/cache中的一些可以被释放的内存。当物理内存不够用时,内核会把非活跃的数据清空。

 2)top

  输入top命令,按下大写的M,可以使输出按照内存的使用率进行排序。top命令使用在内存方面时,可以查看到内存的各种信息,但更多的是用于找出使用内存最多的程序

  详细查看:Linux命令之uptime

 3)ps

  按照实际使用内存,从大到小显示所有进程列表。可以用于找出使用内存最多的程序

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@youxi1 ~]# ps aux --sort -rss | more
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        801  0.0  0.7 358120 29116 ?        Ssl  14:52   0:01 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
root       1140  0.0  0.4 573852 19192 ?        Ssl  14:52   0:01 /usr/bin/python -Es /usr/sbin/tuned -l -P
polkitd     766  0.0  0.3 539212 12892 ?        Ssl  14:52   0:00 /usr/lib/polkit-1/polkitd --no-debug
root        814  0.0  0.2 476472 11220 ?        Ssl  14:52   0:00 /usr/sbin/NetworkManager --no-daemon
root        764  0.1  0.2 298928  8284 ?        Ssl  14:52   0:13 /usr/bin/vmtoolsd
root        763  0.0  0.1  99656  6116 ?        Ss   14:52   0:00 /usr/bin/VGAuthService -s
root       1460  0.0  0.1 161396  6016 ?        Rs   15:26   0:01 sshd: root@pts/0
root       1141  0.0  0.1 218504  4684 ?        Ssl  14:52   0:00 /usr/sbin/rsyslogd -n
root       1143  0.0  0.1 112796  4288 ?        Ss   14:52   0:00 /usr/sbin/sshd -D
postfix    1329  0.0  0.1  89792  4076 ?        S    14:52   0:00 qmgr -l -t unix -u
--More--

  注意:rss前面有减号是降序,没有减号是升序。

(2).查看内存信息

  内存信息存放在/proc/meminfo文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[root@youxi1 ~]# cat /proc/meminfo
MemTotal:        4028428 kB
MemFree:         3561616 kB
MemAvailable:    3597164 kB
Buffers:            2108 kB
Cached:           237892 kB
SwapCached:            0 kB
Active:           195264 kB  //活跃内存,指进程一直读写的内存空间
Inactive:         111844 kB  //非活跃内存
Active(anon):      67760 kB
Inactive(anon):    11152 kB
Active(file):     127504 kB
Inactive(file):   100692 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         67108 kB
Mapped:            25028 kB
Shmem:             11804 kB
Slab:              59536 kB
SReclaimable:      24896 kB
SUnreclaim:        34640 kB
KernelStack:        5072 kB
PageTables:         4068 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4111360 kB
Committed_AS:     270624 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      193148 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:     12288 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      100160 kB
DirectMap2M:     4093952 kB

(3).内存调优

  我没看到专门的内存调优,一般都是程序内部调整。正常运行状态下,长时间占用swap内存就表示需要添加内存条了。(一己之见)

posted @   苦逼运维  阅读(3510)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示