如何在 Linux 操作系统(red hat 7.9)上管理 RAM 消耗

问题描述 投票:0回答:1

我的问题如下,在我们的 red hat os 7.9 服务器中,我们有 512 Go RAM。

我们经常收到交换空间已满的警报。事实上,swap 的使用率高达 99%。与我们的管理服务器讨论后,我得到了以下答复:

对于 Linux 操作系统来说,swap 使用率达到 100% 是正常的 无法检查真实的 ram 消耗:在我们的服务器上使用 SAR 时始终约为 99% :

Memory & Swap
=============
                    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
01/11/2024    9869583 517833049     98.13       977 285023790 319073740     58.60 340613912 162678784    614843
01/12/2024    4181004 523521628     99.21      1349 287757937 323767076     59.46 346046454 162168337   1115633
01/13/2024    2567787 525134845     99.51       844 285755715 327744180     60.19 352144911 157031086    654493
01/14/2024    2827695 524874937     99.46       844 285135562 328070493     60.25 352003644 156742082    742178
01/15/2024    3482087 524220545     99.34      1838 280133083 332837943     61.13 353676271 153986907    998373
01/16/2024    2152990 525549642     99.59       839 273578756 342252974     62.86 362157756 147013751   1136099
01/17/2024    4575639 523126993     99.13      2418 271393967 340334778     62.51 355987093 150884756   1033531
01/18/2024    2205445 525497187     99.58      2413 282078831 328216144     60.28 353148916 156770066    625021
01/19/2024    9451354 518251278     98.21      1542 293648210 305176716     56.05 352495156 150264497    680464

在网络上我可以看到交换使用率高是不正常的,我还注意到重新启动后,交换在几天内非常低,并且当一个进程占用所有RAM(我们这边的错误),然后交换上升到 100%,然后即使相应的进程被杀死,交换也不会下降。这就是为什么几周以来一直运行的服务器都使用了 100% 交换空间。

据说我还可以使用 sar (pswpin/s pswpout/s) 来监视交换使用情况,这是一个好主意,因为它是正确的,当交换始终为 100% 时,我可能没有问题,但当进程开始被杀死时,因为对于 RAM 问题,我可以看到 pswpin/s pswpout/s (sar -W) 的值很高

因此,我可以在一周内监控此活动,以检查我是否有 RAM 问题。

我的问题如下:如何防止内存问题发生?我可以用什么来检查 RAM 的使用百分比(而在 SAR 中它总是 99%...),如何像在 Windows 操作系统中一样获取实际值,以确保杀死开始占用所有 RAM 的进程。 ..

例如,我想在 RAM 使用率约为 80% 时生成警告。

我知道可以使用 free -h 但我不知道如何解释它。 “顶部”也一样。

例如,我将 sar 输出与 free -h 和 top 输出进行比较,但没有看到匹配的值...:-(

[XXXXX@YYYYYY ~]$ sar -r
Linux 3.10.0-1062.4.1.el7.x86_64 (XXXXXX)   02/02/2024  _x86_64_    (64 CPU)
10:30:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty

11:55:01 AM   7916396 519786232     98.50      4688 436720908 164442944     30.20 256757744 249531760      1548
12:00:01 PM   1106680 526595948     99.79      4688 436883120 173459020     31.86 263356476 249699552      4184
12:05:01 PM    742056 526960572     99.86      4688 436447380 173668428     31.90 264216776 249402376      5380
12:10:01 PM  11076780 516625848     97.90      4688 434763392 162944064     29.93 255501116 247835888      3732
12:15:01 PM   7891084 519811544     98.50      4688 434921220 165981024     30.48 258656448 247885164       600
Average:      2201518 525501110     99.58      5447 448667788 154099963     28.30 257069976 255388912      3431
[XXXXX@YYYYYY ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           503G         81G        4.3G        1.3G        417G        419G
Swap:           15G         11G        4.4G
[XXXXX@YYYYYY ~]$ top
top - 12:22:09 up 9 days, 18:55, 48 users,  load average: 4.21, 4.69, 5.06
Tasks: 2645 total,   5 running, 2488 sleeping,   0 stopped, 152 zombie
%Cpu(s):  6.8 us,  3.4 sy,  0.0 ni, 89.8 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 52770262+total,  6888876 free, 83310656 used, 43750310+buff/cache
KiB Swap: 16777212 total,  4582892 free, 12194320 used. 44195168+avail Mem 

我不知道要检查 top 或 free -h 哪些值来了解 RAM 消耗使用的真实百分比..

非常感谢您的帮助

linux operating-system redhat ram sar
1个回答
0
投票

我要做的就是将你的 Linux 加载到外部存储卡或驱动器上,你要使用该程序,只需加载该驱动器,这样就不会减慢你的内存速度。

© www.soinside.com 2019 - 2024. All rights reserved.