本文写在:最近同步几百T数据时候产生问题
①:日志打印太多,造成磁盘空间爆满
②:线程开太多,造成 CPU 使用率过高,程序挂掉
查看磁盘使用情况
- df -h 输出显示的数字形式的’G’(千兆字节),“M”(兆字节)和"K"(千字节)
- Size:总的目录文件可用磁盘大小
Used: 已经使用大小
Avail: 可用的
Use%: 已经使用占用 % 比 - df -m 以 M 输出显示磁盘情况
- df -k 以 K 显示磁盘情况
查看内存使用情况
- top 查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息
- 依次对应:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行) - free 显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存
- total : 总计物理内存的大小
used : 已使用多大
free : 完全空闲的内存
Shared : 多个进程共享的内存总额
Buffers/cached : 磁盘缓存的大小
available:可用的内存大小
查看单个文件,目录大小
- du -h [文件名|目录]
查看文件大小使用情况
查看目录使用情况
解决问题
- 如果要保证磁盘空间充足,避免日志打印过多而造成系统程序挂掉,这时候就得写脚本定时清理日志文件
- 控制程序代码异步线程池数量,根据自己系统内存核数来控制线程池大小,避免出现 cpu 占满程序待机的状况
ls 查看文件与目录的命令,list 之意
- ls
grep 命令从下列文件中查找
- 文件中查找 ‘仅仅’ 的句子 grep ‘类容’ 文件
- 忽略大小写查找 grep -i ‘类容’ 文件
MV 命令重命名,移动 rm 删除
查看日志文件
- cat cat data-index.log | grep “train” 这里还可以过滤
- vi /‘关键字’ 或者 vi ?‘关键字’ 查找 然后使用 N n 继续查找