1. 程式人生 > >Python 清除線上資料oom記憶體溢位事件

Python 清除線上資料oom記憶體溢位事件

120g的雲伺服器記憶體消耗光了,導致python指令碼被意外killed,發現這臺機器有一個本地的mysql例項,有幾個刪除資料的python程序在跑,檢視記憶體使用情況

檢視後臺被kill記錄,確實有被kill的記錄,而且原因都是oom

[[email protected]] /data0/orcl$ dmesg -T |grep kill
[Wed Oct 25 14:07:21 2017]  [<ffffffff81184cfe>] oom_kill_process+0x24e/0x3c0
[Wed Oct 25 14:07:21 2017]  [<ffffffff8118479d>] ? oom_unkillable_task+0xcd
/0x120 [Wed Oct 25 14:07:35 2017] python invoked oom-killer: gfp_mask=0x280da, order=0, oom_score_adj=0 [Wed Oct 25 14:07:35 2017] [<ffffffff81184cfe>] oom_kill_process+0x24e/0x3c0 [Wed Oct 25 14:07:35 2017] [<ffffffff8118479d>] ? oom_unkillable_task+0xcd/0x120 [Wed Oct 25 14:07:50 2017] python invoked oom-killer: gfp_mask=0x201da
, order=0, oom_score_adj=0 [Wed Oct 25 14:07:50 2017] [<ffffffff81184cfe>] oom_kill_process+0x24e/0x3c0 [Wed Oct 25 14:07:50 2017] [<ffffffff8118479d>] ? oom_unkillable_task+0xcd/0x120 [Wed Oct 25 14:08:37 2017] mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0 [Wed Oct 25 14:08:37 2017] [<ffffffff81184cfe>] oom_kill_process+0x24e
/0x3c0 [Wed Oct 25 14:08:37 2017] [<ffffffff8118479d>] ? oom_unkillable_task+0xcd/0x120


檢視當前記憶體使用情況

[root@dbj3st] /data0/orcl$ ps auxw|head -1;ps auxw|sort -rn -k4|head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
laobanz+ 15558 69.5 45.8 56944632 56673636 ?   S    14:03   0:34 python delete_pdd_api_cdb_ins_no.py 8 delete_8
laobanz+ 15522 12.1  4.9 6342140 6071200 ?     S    14:03   0:05 python delete_pdd_api_cdb_ins_no.py 4 delete_4
mysql    14026  0.0  3.3 46736884 4088784 ?    Sl   Oct24   0:35 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data0/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/mysqld.log --pid-file=/data0/mysql/data/dbj3st.prod.yiran.com.pid --socket=/usr/local/mysql/mysql.sock --port=3306
laobanz+ 15530  6.5  0.7 1145680 874664 ?      S    14:03   0:03 python delete_pdd_api_cdb_ins_no.py 5 delete_5
laobanz+ 15549  6.3  0.6 1114348 843284 ?      R    14:03   0:03 python delete_pdd_api_cdb_ins_no.py 7 delete_7
laobanz+ 15540  6.4  0.3 691176 420224 ?       S    14:03   0:03 python delete_pdd_api_cdb_ins_no.py 6 delete_6
zabbix    3168  0.0  0.0  84868   976 ?        S    Sep17   2:08 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
zabbix    3166  0.0  0.0  84984  1356 ?        S    Sep17   4:55 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix    3165  0.0  0.0  84984  1008 ?        S    Sep17   4:53 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix    3164  0.0  0.0  84984  1276 ?        S    Sep17   4:56 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
[root@dbj3st] /data0/orcl$ 


看到15558的程序,佔據了45.8的資源,這是在清除廢棄庫的廢棄表的資料,裡面有一個這樣的rang迴圈
for(i=0;i

相關推薦

Python 清除線上資料oom記憶體溢位事件

120g的雲伺服器記憶體消耗光了,導致python指令碼被意外killed,發現這臺機器有一個本地的mysql例項,有幾個刪除資料的python程序在跑,檢視記憶體使用情況 檢視後臺被kill記錄,確實有被kill的記錄,而且原因都是oom [[email&

Mysql遍歷大表(Mysql大量資料讀取記憶體溢位的解決方法)

mysql jdbc預設把select的所有結果全部取回,放到記憶體中,如果是要遍歷很大的表,則可能把記憶體撐爆。 一種辦法是:用limit,offset,但這樣你會發現取資料的越來越慢,原因是設定了offset,mysql需要將讀取位置移動到offset的位置,隨著offset增大,取資料也越來越慢

JVM學習--各資料記憶體溢位異常測試

JVM學習–總索引 文章目錄 JVM學習--各資料區記憶體溢位異常測試 基本引數介紹 堆記憶體異常測試 OutOfMemoryError 棧記憶體異常 StackOverflowError 棧記憶體異常測試 OutOfMe

java 匯出 excel 最佳實踐,java 大檔案 excel 避免OOM(記憶體溢位) exce

產品需求 產品經理需要匯出一個頁面的所有的資訊到 EXCEL 檔案。 需求分析 對於 excel 匯出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步匯出一個 excel 檔案。 客戶體驗 & 服務效能 客戶體驗 如果匯出的檔案比較大,比如幾十萬條資料,同步匯

java 匯出 excel 最佳實踐,java 大檔案 excel 避免OOM(記憶體溢位) excel 工具框架

產品需求 產品經理需要匯出一個頁面的所有的資訊到 EXCEL 檔案。 需求分析 對於 excel 匯出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步匯出一個 excel 檔案。 客戶體驗 & 服務效能 客戶體驗 如果匯出的檔案比較大,比如幾十萬條資料,同步匯

Java多執行緒程式設計-(11)-面試常客ThreadLocal出現OOM記憶體溢位的場景和原理分析

一、案例程式碼 1、首先看一下程式碼,模擬了一個執行緒數為500的執行緒池,所有執行緒共享一個ThreadLocal變數,每一個執行緒執行的時候插入一個大的List集合: 2、設定JVM引數設定最大記憶體為256M,以便模擬出OOM: 3、執行程式碼,輸出結果: 可以看出,單執行緒池

Java多執行緒程式設計-(9)-ThreadLocal造成OOM記憶體溢位案例演示與原理分析

原文出自 : https://blog.csdn.net/xlgen157387/article/details/78298840 案例程式碼 1、首先看一下程式碼,模擬了一個執行緒數為500的執行緒池,所有執行緒共享一個ThreadLocal變數,每一個執行緒執

mysql 匯入資料記憶體溢位問題

用mysqldump匯出一個數據庫,其中有兩個表資料有20多W,執行匯入的時候老是保記憶體溢位,試驗了多種方法,始終不行,後來看mysql的伺服器的配置,發現裡面沒有啥設定,於是在裡面增加一個max_allowed_packet=32M配置,然後重新匯入時候沒有保錯,資料完全

python清除函式佔用的記憶體

python升級到2.7.13 函式執行的結尾加上這個即可 for x in locals().keys():      del locals()[x] gc.collect() 原理是,locals()會列出當前所有區域性變數,手動的把當前函式生成的開銷都

jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位(轉)

來自網路,我在做生成excel的時候也遇到這個吐血問題。 jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位 處理: 出錯的原因是ResultSet用的是可滾動結果集,正常情況下ResultSet是指標指向資料庫的資料,本身是不儲

通過介面獲取大量資料記憶體溢位的問題

今天一個網友問了我一個問題: 需要給這個介面中寫義工xml串(4w條),人家介面返回0或者1 問題是:5千條正常傳送,1w條就報記憶體溢位 . 報java.lang.OutOfMemoryError: Java heap space 錯誤. 建議解決方法: 1.設Out

OOM(記憶體溢位)

Out of Memory Spark中的OOM問題不外乎以下兩種情況 map執行中記憶體溢位 shuffle後記憶體溢位 map執行中記憶體溢位代表了所有map型別的操作,包括:flatMap,filter,mapPatitions等。shuffle後記憶體溢位的sh

安卓載入圖片過大而導致OOM記憶體溢位的解決方法(巨坑....)

如果圖片太大會造成OOM記憶體溢位的錯誤,需要用Bitmap的壓縮機制。 如果跳轉的頁面含有圖片可能會導致跳轉失敗。 比如說我這裡是一旦觸發了某個按鍵,就修改該xml的圖片和文字說明 則setImageResource應該改成這樣imageview.setImageBitm

android--使用Canvas,Bitmap出現OOM-記憶體溢位

public class MyView {     private Canvas mCanvas;     private Bitmap mBitmap;     private static Bitmap mFreeBitmap;     static { mFree

Android下的,OOM記憶體溢位解決方法\AsyncTask

在Android平臺上面,應用程式OOM異常永遠都是值得關注的問題。通常這一塊也是程式這中的重點之一。這下我就如何解決OOM作一點簡單的介紹。     首先,OOM就是記憶體溢位,即Out Of Memory。也就是說記憶體佔有量超過了VM所分配的最大。     怎麼解決

分享一次解決線上java應用導致JVM記憶體溢位OOM)的問題

某個線上的應用執行幾天後,總是出現卡死甚至出現OOM的情況。 注:文中圖片可能與描述不符,僅作為演示! 通過Linux的top命令檢視cpu佔比 首先通過top命令檢視,發現某個java程式佔用了較高記憶體: JDK的jps命令確定是哪個j

python讀取mysql怎麼不會記憶體溢位

使用過java讀取mysql大資料量的人應該都知道,如果查詢時不開遊標不設定一次性區大小的話,會一次性的把所有記錄都拉取過來再進行後續操作,資料量一大就很容易出現OOM 如果用python去讀取mysql也會遇到同樣的問題 那麼這麼在python中來設定使用遊標呢 也很簡單 這裡

記憶體溢位OOM

什麼是OOM?      OOM是out of memory的簡稱,也稱記憶體溢位。       什麼樣的場景下會出現OOM?        1、在對圖片進行記憶體快取處理的時候就

JAVA虛擬機器(JVM)劃重點 第二章 Java記憶體區域與記憶體溢位異常 之 執行時資料區域

本部落格參考《深入理解Java虛擬機器》(第二版)一書,提取重點知識,再加以個人的理解編寫而成。轉載請標明來源。 JVM劃重點 第二章 Java記憶體區域與記憶體溢位異常 之 執行時資料區域 概述 執行時資料區域 程式計數器 Java虛擬機

Python中的資料型別轉換舉例及指令碼統計伺服器記憶體例項

統計系統剩餘的記憶體      In [1]: s1 = 'abc'     In [2]: help(s1.startswith)     Hel