46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
from django.db import models
|
|
|
|
class BaseProcessMonitor(models.Model):
|
|
"""进程监控基类"""
|
|
pid = models.IntegerField(verbose_name="进程ID")
|
|
process_name = models.CharField(max_length=255, verbose_name="进程名称")
|
|
log_path = models.CharField(max_length=255, verbose_name="日志路径")
|
|
is_active = models.BooleanField(default=True, verbose_name="是否活跃")
|
|
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
status = models.IntegerField(default=1, verbose_name="进程状态", help_text="1:运行中, 0:已停止")
|
|
|
|
# 基本资源信息
|
|
cpu_usage = models.FloatField(default=0, verbose_name="CPU使用率(%)")
|
|
memory_usage = models.FloatField(default=0, verbose_name="内存使用量(GB)")
|
|
gpu_usage = models.FloatField(default=0, verbose_name="GPU使用率(%)")
|
|
gpu_memory = models.FloatField(default=0, verbose_name="GPU显存使用量(MB)")
|
|
virtual_memory = models.FloatField(default=0, verbose_name="虚拟内存使用量(GB)")
|
|
|
|
class Meta:
|
|
abstract = True
|
|
|
|
class HighCPUProcess(BaseProcessMonitor):
|
|
"""高CPU使用进程监控"""
|
|
cpu_cores = models.IntegerField(default=0, verbose_name="使用的CPU核心数")
|
|
|
|
class Meta:
|
|
verbose_name = "高CPU进程"
|
|
verbose_name_plural = "高CPU进程"
|
|
|
|
class HighGPUProcess(BaseProcessMonitor):
|
|
"""高GPU使用进程监控"""
|
|
gpu_index = models.IntegerField(default=0, verbose_name="GPU设备索引")
|
|
|
|
class Meta:
|
|
verbose_name = "高GPU进程"
|
|
verbose_name_plural = "高GPU进程"
|
|
|
|
class HighMemoryProcess(BaseProcessMonitor):
|
|
"""高内存使用进程监控"""
|
|
swap_usage = models.FloatField(default=0, verbose_name="交换空间使用量(GB)")
|
|
|
|
class Meta:
|
|
verbose_name = "高内存进程"
|
|
verbose_name_plural = "高内存进程"
|