Appengine / ComputeEngine内存问题?

时间:2015-12-04 18:43:01

标签: google-app-engine memory google-compute-engine

我怀疑这是一个简单的内存泄漏问题(python27进程在托管VMs GCE容器上运行的appengine库存在内存泄漏),但我对OOM期间收集的数据有些疑惑。的问题。

一天大部分时间都运行良好,我的" vmstat 1"突然发生了巨大的变化:

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0  70116   7612  41240    0    0     0    64  231  645  3  2 95  0
 0  0      0  70148   7612  41240    0    0     0     0  164  459  2  2 96  0
 1  0      0  70200   7612  41240    0    0     0     0  209  712  2  1 97  0
 1  0      0  65432   7612  41344    0    0   100     0  602  820 48  5 47  1
 1  3      0  69840   5644  29620    0    0  1284     0  812  797 33  6 34 27
 0  1      0  69068   5896  30216    0    0   852    68  362 1052  6  1  0 93
 0  1      0  68340   6160  30536    0    0   556     0  547 1355  4  2  0 94
 0  2      0  67928   6564  30972    0    0   872     0  793 2173  9  5  0 86
 0  1      0  63988   6888  34416    0    0  3776     0  716 1940  3  3  0 94
 3  0      0  63696   7104  34608    0    0   376     0  353 1006  4  4 34 58
 0  0      0  63548   7112  34948    0    0   332    48  379  916 13  1 84  2
 0  0      0  63636   7116  34948    0    0     4     0  184  637  0  1 99  0
 0  0      0  63660   7116  34948    0    0     0     0  203  556  0  3 97  0
 0  1      0  76100   3648  26128    0    0   460     0  409 1142  7  4 85  4
 0  3      0  73452    948  15940    0    0  4144    80 1041 1126 53  6 10 31
 0  6      0  73828     84  11424    0    0 32924    80 1135 1732 11  4  0 85
 0  6      0  72684     64  12324    0    0 52168     4 1519 2397  6  3  0 91
 0 11      0  67340     52  12328    0    0 78072    16 1388 2974  2  9  0 89
 1 10      0  65992    336  13412    0    0 79796     0 1297 2973  0  9  0 91
 0 15      0  69000     48  10396    0    0 78344     0 1203 2739  2  7  0 91
 0 15      0  67168     52  11460    0    0 86864     0 1244 3003  0  6  0 94
 1 15      0  71268     52   7836    0    0 82552     4 1497 3269  0  7  0 93

特别是,我的内存缓存和buff掉线了,io字节数大幅增加,并且在机器死亡并由Google Compute Engine重新启动之后,它在此之后保持了大约10分钟。我假设" bi"表示来自磁盘的字节数,但我很好奇为什么swpd为这个实例显示0,如果有交换?为什么记忆"免费"如果事情达到交换点,stat仍然不受影响吗?

在最后一次撞车时,我的上衣显示:

Top - 15:06:20 up 1 day, 13:23,  2 users,  load average: 13.88, 11.22, 9.30
Tasks:  92 total,   3 running,  89 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  8.0 sy,  0.0 ni,  0.0 id, 90.9 wa,  0.0 hi,  0.4 si,  0.0 st
KiB Mem:   1745136 total,  1684032 used,    61104 free,      648 buffers
KiB Swap:        0 total,        0 used,        0 free,    12236 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND  
   23 root      20   0     0    0    0 R  12.6  0.0   2:11.61 kswapd0                                              
   10 root      rt   0     0    0    0 S   2.5  0.0   0:52.92 watchdog/0                                           
 2315 root      20   0  192m  17m    0 S   2.1  1.0  47:58.74 kubelet                                              
 2993 root      20   0 6116m 1.2g    0 S   0.9 70.2 318:41.51 python2.7                                            
 6644 root      20   0 55452  12m    0 S   0.9  0.7   0:00.81 python                                               
 2011 root      20   0  761m 9924    0 S   0.7  0.6  12:23.44 docker                                               
 6624 root      20   0  4176  132    0 D   0.5  0.0   0:00.24 du                                                   
  140 root       0 -20     0    0    0 S   0.4  0.0   0:08.64 kworker/0:1H                                         
 2472 root      20   0 39680 5616  296 D   0.4  0.3   0:27.43 python                                               
    1 root      20   0 10656  132    0 S   0.2  0.0   0:02.61 init                                                 
    3 root      20   0     0    0    0 S   0.2  0.0   2:02.17 ksoftirqd/0                                          
   22 root      20   0     0    0    0 R   0.2  0.0   0:24.61 kworker/0:1                                          
 1834 root      20   0 53116  756    0 S   0.2  0.0   0:01.79 rsyslogd                                             
 1859 root      20   0 52468 9624    0 D   0.2  0.6   0:29.36 supervisord                                          
 2559 root      20   0  349m 172m    0 S   0.2 10.1  25:56.31 ruby        

同样,我看到python27进程占据了70%(当与Ruby的10%相结合时,将我置于危险区域)。当上面的vmstat显示为0时,为什么kswapd会因为我的10%CPU而疯狂?

我应该不相信vmstat的交换?

0 个答案:

没有答案