资源占用
CPU
查看基础信息
命令:lscpu
CPU(s): 24
On-line CPU(s) list: 0-23
Thread(s) per core: 2 # 每个核的线程数
Core(s) per socket: 12 # 每个座的核数
Socket(s): 1
所以上面表示服务器CPU是24核。
查看程序对CPU的占用情况
命令: top
PID USER PR NI VIRT RES SHR S **%CPU** %MEM TIME+ COMMAND
1400 root 20 0 558160 15340 4108 S 1.0 0.4 31:57.74 barad_a+
1287 root 20 0 982100 67180 29024 S 0.7 1.9 48:55.26 YDServi+
11 root 20 0 0 0 0 I 0.3 0.0 4:35.21 rcu_sch+
其中如果CPU占用率为160%,表示占用了2个CPU,但是我们有24个,所以资源够用。
限制CPU
reference:
https://geek-docs.com/python-samples/python-utility_script_and_system_manage/python-putting_limits_on_memory_and_cpu_usage.html
GPU
查看基础信息
命令: lspci | grep -i vga
查看程序对GPU的占用情况
nvidia可以用命令: nvidia-smi
禁用GPU
对于模型推理的程序,可以禁用GPU,只用CPU进行推理。
在python代码中加入:
import os
os.environ[“CUDA_VISIBLE_DEVICES”] = “-1”
限制使用GPU(tensorfow)
import tensorflow as tf
conf = tf.ConfigProto()
conf.gpu_options.per_process_gpu_memory_fraction=0.1 # 占用的百分数
session = tf.Session(config=conf)
reference: https://www.codenong.com/55531944/
memory
查看基本信息
命令: cat /proc/meminfo
显示:
MemTotal: 8024328 kB
MemFree: 3007456 kB
MemAvailable: 4911184 kB
Buffers: 94636 kB
Cached: 2464528 kB
可以看到总内存为8GB。
节省内存
reference:
https://blog.csdn.net/PolarisRisingWar/article/details/124445212
https://www.jb51.net/article/167344.htm
代码后台运行
命令:
nohup python ./webapi.py >/dev/null 2>&1 &
description:
nohup运行命令可以使运行的命令永久的执行下去,和用户终端没有关系,可以在你退出帐户/关闭终端之后继续运行相应的进程。例如我们断开SSH连接并不会影响他的运行(注意:nohup没有后台运行的意思,&才是后台运行)
&是指在后台运行,当用户退出(挂起)、关闭终端的时候,后台运行的这条命令也会退出
/dev/null表示垃圾桶的意思,类似windows的回收站
2表示错误输出,1表示标准输出,>表示重定向
所以2>&1连起来就是:将错误输出重定向到标准输出
查询进程
ps -aux | grep xxx.py # 查询***进程的详细信息;