ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 误认为linux机器内存使用光光

误认为linux机器内存使用光光

原创 Linux操作系统 作者:yhdmy 时间:2015-04-20 17:43:38 0 删除 编辑
Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,几乎用掉了全部。本部门测试机器只跑了ORACLE数据库,机器内存16G,使用的也几乎16G,有些不了解,这到底是怎么一回事,难道都是ORACLE占用的,可是SGA我分配的是6G,应该还剩下10G啊?带着这些疑问,我就开始学习之旅。

1. 使用TOP命令查看如下:
top - 11:20:23 up 3 days, 11:51,  2 users,  load average: 1.17, 1.50, 1.21
Tasks: 323 total,   1 running, 319 sleeping,   3 stopped,   0 zombie
Cpu(s):  2.7%us,  6.9%sy,  0.0%ni, 81.0%id,  6.3%wa,  0.5%hi,  2.6%si,  0.0%st
Mem:  16435932k total, 16350264k used,    85668k free,    10012k buffers
Swap:  4192956k total,  2535368k used,  1657588k free, 14756048k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
26008 oracle    25   0 6321m 284m 279m D 56.5  1.8  48:46.13 oracle             
  458 root      10  -5     0    0    0 S  8.3  0.0  30:07.92 kswapd0            
 8662 oracle    18   0 6327m  64m  56m S  0.7  0.4  30:15.02 oracle             
25838 oracle    15   0 6320m  40m  36m S  0.7  0.3   0:00.38 oracle             
26542 root      15   0 12892 1268  812 R  0.7  0.0   0:00.11 top                
 8770 oracle    15   0 6318m  81m  78m S  0.3  0.5   6:19.91 oracle             
    1 root      15   0 10368  672  564 S  0.0  0.0   0:04.52 init               
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.72 migration/0        
    3 root      34  19     0    0    0 S  0.0  0.0   0:03.44 ksoftirqd/0        
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.31 migration/1        
    5 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1        
    6 root      RT  -5     0    0    0 S  0.0  0.0   0:00.19 migration/2        
    7 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/2        
    8 root      RT  -5     0    0    0 S  0.0  0.0   0:00.28 migration/3        
    9 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/3        
   10 root      RT  -5     0    0    0 S  0.0  0.0   0:02.97 migration/4        
   11 root      34  19     0    0    0 S  0.0  0.0   0:28.05 ksoftirqd/4 

实际剩余可用内存=free+buffers+cached
实际已用内存=used-buffers-cached
按照公式得出以上机器可用内存空间为:85668k+ 10012k +14756048k = 14851728k (14.16G)


2. 数据库启动前后的内存使用对比,发现数据库sga_max_size设置为6G,可是在启动数据库后不是直接将6G占用,只是占用一部分。另外还有一点,就是可以通过-/+ buffers/cache:后面的值 来看数据库使用与空闲空间。详细信息如下:

启动数据库前:
[root@tora01 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         16050      13476       2574          0         18      13034
-/+ buffers/cache:        423      15627
Swap:         4094          0       4094

启动数据库后:
[root@tora01 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         16050      15967         83          0          7      13424
-/+ buffers/cache:       2534      13515
Swap:         4094       2321       1772


总结:linux操作系统中内存使用的显现需要DBA们注意,一不小心就以为占了全部。再一个发现oracle在启动instance时,并不是把SGA_MAX_SIZE的值一下子显示在已用当中,而是先显示一部分,后期使用过程中再次增加显示。







来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26148431/viewspace-1587592/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
曾就职于铁道科学研究院,太极计算机公司,合力中税。负责过国家电网数据库部署、迁移、升级、灾备等实施规划工作。大唐发电厂、北京市公安局数据库运维及优化工作。现任工场高级DBA岗位,负责oracle、mysql数据库相关工作。拥有Oracle技术10g/11g的 OCP与OCM认证,Oracle YEP成员,OCM联盟成员。

注册时间:2013-04-22

  • 博文量
    111
  • 访问量
    1751022