zoukankan      html  css  js  c++  java
  • python定时脚本判断服务器内存

    经常我们会发现服务器跑着跑着内存使用率达到了百分之八九十,或者有时候直接挂掉,在我们还没定位是哪块代码有问题导致内存占用很大的时候,可以先写个定时脚本,当服务器内存使用率达到一定值的时候,就重启一起服务,释放内存。下面这个定时脚本是每隔10s去判断一下机器的内存,假如内存使用率超过10%,就重启一下进程(正常情况下内存使用率是%5左右,所以就定了个10%),代码如下面蓝色部分所示。然后修改脚本权限,用于命令让它在后头不挂断运行:nohup python -u restart.py >nohup.out 2>&1 &

    #! /usr/bin/env python
    # -*- coding:utf-8 -*-

    import os
    import time
    import datetime
    import sched
    import datetime
    import psutil

    #schedule_time = sched.scheduler(time.time,time.sleep)

    schedule = sched.scheduler(time.time,time.sleep)

    #def perform_command_time(cmd,inc):
    #   schedule_time.enter(inc,0,perform_command_time,(cmd,inc))
    #   os.system(cmd)

    def perform_command(cmd,inc):
        schedule.enter(inc,0,perform_command,(cmd,inc))
        memory = psutil.virtual_memory()
        percent = memory.percent
        if percent < 10:
            now = datetime.datetime.now()
            print now
            print percent
        if percent >=10:
            now = datetime.datetime.now()
            print now
            print percent
            os.system('ps -ef | grep supervisord | grep -v grep | cut -c 9-15 | xargs kill -9')
            os.system('ps -ef | grep ncq.dnsquery_monitor0_check | grep -v grep | cut -c 9-15 | xargs kill -9')
            time.sleep(5)
            os.system('supervisord -c /opt/trunk/conf.d/supervisord.conf')
            os.system('supervisorctl -uxxx -pxxx restart all')
            time.sleep(5)
    #def timming_exe(cmd,inc=60):
    #    schedule_time.enter(inc,0,perform_command_time,(cmd,inc))
    #    schedule_time.run()

    def restart_exe(cmd,inc=5):
        schedule.enter(inc,0,perform_command,(cmd,inc))
        schedule.run()

    #print("show date after 10 seconds:")
    #timming_exe('date',10)
    print("restart celery----------->")
    restart_exe('supervisorctl -uxxx -pxxx restart all',10)
    #restart_exe('df -h',12)

  • 相关阅读:
    leetcode 190 Reverse Bits
    vs2010 单文档MFC 通过加载位图文件作为客户区背景
    leetcode 198 House Robber
    记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
    逆序数2 HDOJ 1394 Minimum Inversion Number
    矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence
    递推DP URAL 1586 Threeprime Numbers
    递推DP URAL 1167 Bicolored Horses
    递推DP URAL 1017 Staircases
    01背包 URAL 1073 Square Country
  • 原文地址:https://www.cnblogs.com/forward-wang/p/9152156.html
Copyright © 2011-2022 走看看