Browse Source

增加了内存的显示

master
鱼骨剪 10 months ago
parent
commit
fad4dce56a
  1. 19
      app.py
  2. 24
      index.html

19
app.py

@ -98,13 +98,27 @@ def get_storage_info(client, timeout, path_list):
return result return result
def get_memory_info(client, timeout):
stdin, stdout, stderr = client.exec_command('free', timeout=timeout)
output = stdout.read().decode().split('\n')[1]
if output == "":
return None
data = output.split()
result = {
"total": int(data[1]),
"used": int(data[2])
}
return result
# 持续获取一个服务器的信息 # 持续获取一个服务器的信息
def keep_check_one(server: dict, shared_data_list: dict, server_title: str, interval: float, re_connect_time: float=5): def keep_check_one(server: dict, shared_data_list: dict, server_title: str, interval: float, re_connect_time: float=5):
# 处理一下需要检查的存储空间路径 # 处理一下需要检查的存储空间路径
if not 'storage_list' in server: if not 'storage_list' in server:
server['storage_list'] = [] server['storage_list'] = []
if not '/' in server['storage_list']: if not '/' in server['storage_list']:
server['storage_list'].append('/') server['storage_list'].insert(0, '/')
re_try_count = 0 re_try_count = 0
# 循环连接 # 循环连接
@ -127,12 +141,14 @@ def keep_check_one(server: dict, shared_data_list: dict, server_title: str, inte
gpu_info = get_gpus_info(client, interval*3) gpu_info = get_gpus_info(client, interval*3)
# 存储空间信息 # 存储空间信息
storage_info = get_storage_info(client, interval*3, server['storage_list']) storage_info = get_storage_info(client, interval*3, server['storage_list'])
memory_info = get_memory_info(client, interval*3)
# locked = False # locked = False
with data_list_lock: with data_list_lock:
# locked = True # locked = True
shared_data_list[server_title]['gpu_info_list'] = gpu_info shared_data_list[server_title]['gpu_info_list'] = gpu_info
shared_data_list[server_title]['storage_info_list'] = storage_info shared_data_list[server_title]['storage_info_list'] = storage_info
shared_data_list[server_title]['memory_info'] = memory_info
shared_data_list[server_title]['updated'] = True shared_data_list[server_title]['updated'] = True
shared_data_list[server_title]['maxGPU'] = len(gpu_info) shared_data_list[server_title]['maxGPU'] = len(gpu_info)
# locked = False # locked = False
@ -180,6 +196,7 @@ def filter_data(title_list: list):
err_info = data_dict[title].get('err_info', '') err_info = data_dict[title].get('err_info', '')
server_data[title]['gpu_info_list'] = gpu_info_list server_data[title]['gpu_info_list'] = gpu_info_list
server_data[title]['storage_info_list'] = data_dict[title].get('storage_info_list', []) server_data[title]['storage_info_list'] = data_dict[title].get('storage_info_list', [])
server_data[title]['memory_info'] = data_dict[title].get('memory_info', {})
server_data[title]['updated'] = data_updated server_data[title]['updated'] = data_updated
server_data[title]['err_info'] = err_info server_data[title]['err_info'] = err_info
result['time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S') result['time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

24
index.html

@ -104,6 +104,27 @@
serverCard.appendChild(serverName); serverCard.appendChild(serverName);
// 分割线 // 分割线
add_bar(serverCard); add_bar(serverCard);
// 内存
if ('memory_info' in serverData[key]){
let memoryInfo = document.createElement('div');
memoryInfo.classList.add('memory-info');
let totalNum = serverData[key].memory_info.total
let usedNum = serverData[key].memory_info.used
let totalMem = parse_storage(totalNum);
let usedMem = parse_storage(usedNum);
let tmpColor = "green";
if (usedNum / totalNum > 0.8)
tmpColor = "red";
else if (usedNum / totalNum > 0.6)
tmpColor = "orange";
memoryInfo.innerHTML += "<strong> 内存 : </strong> <span style=\"color: " + tmpColor + ";\">" + usedMem + " / " + totalMem + "</span><br>";
serverCard.appendChild(memoryInfo);
// 分割线
add_bar(serverCard);
}
// 存储空间 // 存储空间
if ('storage_info_list' in serverData[key]){ if ('storage_info_list' in serverData[key]){
@ -126,9 +147,10 @@
} }
serverCard.appendChild(storageInfo); serverCard.appendChild(storageInfo);
}
// 分割线 // 分割线
add_bar(serverCard); add_bar(serverCard);
}
// gpu // gpu
if ('gpu_info_list' in serverData[key]){ if ('gpu_info_list' in serverData[key]){
serverData[key].gpu_info_list.forEach(function(gpu){ serverData[key].gpu_info_list.forEach(function(gpu){

Loading…
Cancel
Save