Linux系統程序CPU使用率限制指令碼

2021-09-01 02:46:04 字數 1752 閱讀 2651

根據此編寫指令碼,配合定時任務放置在伺服器上,達到限制程式cpu情況,可根據自己系統cpu核心數進行引數配置,會記錄cpu超過閥值的日誌,可供後期進行檢視分析。

#!/bin/bash

# auth:kaliarch

# func:sys info check

# version:v1.0

# sys:centos6.x/7.x

set -e

[ $(id -u) -gt 0 ] && exit 1

# cpu使用超過百分之多少進行限制

pec_cpu=80

# 限制程序使用百分之多少,如果程式為多執行緒,單個cpu限制為85,如果為多核心,就需要按照比例寫,例如cpu為2c,像限制多執行緒佔比80%,就寫170

limit_cpu=85

# 日誌

log_dir=/var/log/cpulimit/

# 超過閥值程序pid

pidarg=$(ps -aux |awk -v cpu=$ '')

cpulimitcmd=$(which cpulimit)

install_cpulimit()

do_cpulimit() ] && mkdir -p $

for i in $;

do msg=$(ps -aux |awk -v pid=$i '')

echo $

[ ! -d /tmp ] && mkdir /tmp || cd /tmp

nohup $ -p $i -l $ &

echo "$(date) -- $" >> $$(date +%f).log

done

}main()

main

3.1 測試指令碼

為配合測試利用python編寫測試指令碼來將cpu跑滿

#!/bin/env python

import math

import random

a=10000

b=10000

c=10000

sum=0

for i in range(0,a):

for j in range(0,b):

randomfloat=random.uniform(1,10)

randompow=random.uniform(1,10)

sum+=math.pow(randomfloat, randompow)

print "sum is %s" % sum

製作定時任務

3.2 執行指令碼

指令碼本身本身只使用了乙個核心,跑了兩個測試指令碼,將cpu跑到100%

3.3 檢視程序

檢視已經有兩個cpulimt進對測試程式進行了cpu使用率限制

3.4 檢視日誌

記錄下了cpulimit限制時刻的日誌

3.5 檢視cpu利用率

檢視cpu利用率已經限制到了85%

獲取系統CPU 使用率

來看一下 filetime的結構 typedef struct filetime filetime,pfiletime,lpfiletime 這個結構是64位的。ok,上個我除錯的截圖來證明一下,為什麼出錯 eax 是32的,shl eax,20h 也是還是他自己。沒有任何改變 注意到 int64 ...

Linux 系統 CPU 使用率簡單分析

cpu 使用率是單位時間內 cpu 使用情況的統計,以百分比的方式展示。為了維護 cpu 時間,linux 通過事先定義的節拍率 核心中表示為 hz 觸發時間中斷,並使用全域性變數 jiffies 記錄了開機一來的節拍數。每發生一次時間中斷,jiffies 的值就加 1。linux 通過 proc ...

Linux計算cpu使用率

計算總的 cpu 使用率 totalcpuuse 1 取樣兩個足夠短的時間間隔的 cpu 快照,即讀取 proc stat 檔案,獲取兩個時間點的下列資料 cput1 user1,nice1,system1,idle1,iowait1,irq1,softirq1,stealstolen1,guest...