python_清理占用内存的脚本

脚本内容如下:

vim    ~/shell/clean_cache.py

 1 #!/usr/bin/python
 2 #conding=utf-8
 3 #该脚本用于清理服务器当中占用内存20G以上,运行时间超过3小时以上(或1天以上的)进程。
 4 import os
 5 #import psutil
 6
 7 pslist = os.popen(‘ps -auxf‘,‘r‘).readlines()
 8 for list in pslist:
 9         p = list.split()                           #以空格分割
10         user = p[0]                                #用户
11         pid = p[1]                                    #进程PID
12         mem = p[4]                                    #内存
13         day = p[8]                                    #日期
14         t = p[9]                                    #运行时间
15         if mem.isdigit()  and int(mem) > 20000000:  #剔除第一行vsz并且保证占用内存大于20G
16                 if day.isalnum():                   #判断日期是否为今天
17                         print day.isalnum()
18                         print "progess running over a day,kill it now!"
19                         cmd = "kill -9 "+pid
20                         os.popen(cmd)
21                 if int(t.split(‘:‘)[0]) > 180:      #判断运行时间超过3小时
22                         print t.split(‘:‘)[0]
23                         print "this progesss have run over 2 hour,kill it now!"
24                         cmd = "kill -9 "+pid
25                         os.popen(cmd)
26         else:
27                 continue 

以上是单台的服务器的脚本内容,其实可以结合crontab或者可以与ansible的script模块来批量执行,会达到更好的效果!

举例: ansible all -m script -s -a "/home/xxx/shell/clean_cache.sh"

时间: 2024-10-09 19:02:00

python_清理占用内存的脚本的相关文章

.net中清理内存,清理占用内存方式方法

#region 内存回收 [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")] public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize); /// <summary> /// 释放内存 /// </summary> public sta

(转)增加定时检测linux占用内存,及时清理功能

增加定时检测linux占用内存,及时清理功能 原文:http://www.voidcn.com/article/p-wnmannom-boa.html free -m 查看,发现内存跑满了. 再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用7.9%. 但是总内存大小8G,竟然有5G都被使用了, 那是什么占用的呢? 百度了一下,据说是centos为了提高效率,把部分使用过的文件缓存到了内存里. 如果是这样的话,我又不需要这样的文件性能,那就可以释放.如下两

zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数

首先,在zabbix脚本目录下添加一个脚本,写入如下代码 #!/bin/bash #license:GPL #mail:[email protected] #date:2015.04.16 top -bn1>/usr/local/zabbix-2.4.4/scripts/process.log LOG=/usr/local/zabbix-2.4.4/scripts/process.log php_fpm(){ grep "php-fpm" $LOG |awk '{sum+=$6}

【转载】Unity 优雅地管理资源,减少占用内存,优化游戏

转自:星辰的<Unity3D占用内存太大的解决方法> 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的. 其实场景里所有静

Unity3D占用内存太大的解决方法【先转,慢慢看】

Unity3D占用内存太大的解决方法 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的. 其实场景里所有静态的对象也有这么一

PHP数组实际占用内存大小的分析

一般来说,PHP数组的内存利用率只有 1/10, 也就是说,一个在C语言里面100M 内存的数组,在PHP里面就要1G.下面我们可以粗略的估算PHP数组占用内存的大小,首先我们测试1000个元素的整数占用的内存: <?php echo memory_get_usage() , '<br>'; $start = memory_get_usage(); $a = Array(); for ($i=0; $i<1000; $i++) { $a[$i] = $i + $i; } $mid 

Shell练习-计算一下所有进程所占用内存大小的和

ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和.(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和) #!/bin/bash #Calculate how much memory is occupied by this process #2015/07/22  ps aux |awk -F' ' '{(sum=sum+$6)};END{print sum}'

Unity3D占用内存太大的解决方法

原文链接:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大. Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBund

CentOS7 定时检测进程占用内存大小,执行重启进程操作(xjl456852原创)

在使用CentOS时,个别程序的进程会一直增大,直到宕机.但是这种程序本身有没有更好的版本使用(比如ngrok免费就这样,付费的就没这个问题),所以想写一个脚本定时检测一下这个程序的情况,决定是否需要重启,该重启时重启,没有启动则让他启动. 注:脚本名中最好不要包含ngrokd, 因为脚本执行时自己也会成为一个进程,获取原始ngrokd的进程大小就不能简写为grep "ngrokd"  ,而应改为全路径:grep "/usr/local/ngrok/bin/ngrokd&qu