避免由于数据导入导致 Load average 过载

通过htop发现过载

htop输出的头部理解:
- 左上是CPU的使用情况:有多少核就有多少行,每行中0表示负载低、100表示高负载;颜色编码CPU和Memory由什么进程占用(红色——kernel进程绿色——普通用户进程蓝色——低优先级进程
- Mem Memory使用占比:颜色编码Memory使用情况(绿色——memory蓝色——Buffer黄色——Cache
- Load average CPU执行计算工作的平均值: 单核CPU上的1.0表示100%的利用率,类似地,双核CPU上的2.0表示100%的CPU利用率,以此类推; Load average 包含三个值:1分钟 5分钟 15分钟 内CPU使用率的平均值;当这三个值大于CPU总核数时表示CPU已经过载了。

将用到的数据放到/dev/shm文件夹防止过载

/dev/shm是 linux 系统利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中。所以当机器内存足够放在数据时,可直接把数据放在/dev/shm文件下并修改代码数据的读取路径,避开从硬盘读数据、防止存取过载。

  1. 确定文件夹/dev/shm容量是否足够放数据
     df -h
    
    默认/dev/shm为机器内存的一半。如果太小,可以通过以下代码修改
  2. 修改/dev/shm大小为200G
    sudo mount -o size=204800M  -o remount /dev/shm
    
  3. 将数据从/source/data目录移到/dev/shm目录内
    cp -r /source/data /dev/shm
    
  4. 将代码中数据的读取路径由/source/data换成/dev/shm

其他

  • 显示swap空间占用前10(前20需将head -10换成head -20)的程序
    for i in $(cd /proc;ls | grep "^[0-9]"|awk '$0 >100');do awk '/Swap:/{a=a+$2}END{print "'$i'", a/1024"M"}' /proc/$i/smaps 2>/dev/null;done | sort -k2nr | head -10
    
    以下是测试的输出:PID 使用的swap空间大小
    3292218 301.812M
    3240433 158.023M
    2351040 158.016M
    2351106 158.016M
    2351171 158.016M
    2351237 158.016M
    2351301 158.016M
    2351366 158.016M
    2351429 158.016M
    2351492 158.016M
    
  • 杀死进程
    # kill -9 PID
    kill -9 3282218
    

你可能感兴趣的:(Linux,linux,运维,服务器)