当前位置: 首页 > news >正文

Centos 7 | 定时运行 gzip 进程导致 CPU 过高,但无法确定系统自动运行 gzip 的原因 排查思路

文章目录

  • 1.gzip 进程引起主机 CPU 过高的排查思路
  • 2. 如 /etc/logrotate.d/ 中无 gzip 配置,其他排查思路
  • 3. gzip 进程无子进程信息及压缩内容显示的问题
  • 4. 如何禁用 gzip 相关的自启或定时任务
  • 5. logrotate 服务中使用 gzip 的场景
  • 6. 查看 logrotate 执行时间及调度配置
  • 附:/etc/logrotate.d/ 目录下配置概览

免费个人运维知识库,欢迎您的订阅:literator_ray.flowus.cn

1.gzip 进程引起主机 CPU 过高的排查思路

在 CentOS 7 中,gzip 进程通常由 logrotate工具定时触发,用于压缩旧日志文件以节省磁盘空间。若发现 gzip 进程占用 CPU 过高,可通过调整 logrotate的配置优化其运行时间或禁用压缩功能。相关配置文件通常位于 /etc/logrotate.d/目录。

此外,可通过系统日志进一步查看 gzip 进程的详细信息。例如使用以下命令查看日志:

journalctl -u gzip.service

也可借助 top命令实时监控进程状态,判断 gzip 是否占用过高 CPU。

2. 如 /etc/logrotate.d/ 中无 gzip 配置,其他排查思路

/etc/logrotate.d/目录中未发现 gzip 相关配置,可能是以下原因导致其定时运行:

  • 系统安装的某些应用程序自动调用 gzip 进行文件压缩;

  • 通过 crontab 或其他定时任务调度程序启动 gzip。

建议采取以下措施:

  • 使用 crontab -l查看当前用户的定时任务;

  • 检查 /etc/cron.*/目录下的系统定时任务配置;

  • 使用 lsof -c gzip查看与 gzip 相关的打开文件,进一步定位调用来源。

如仍无法确定原因,可通过 tophtop等工具持续监控系统资源使用情况。

3. gzip 进程无子进程信息及压缩内容显示的问题

若通过 topps命令未看到 gzip 的子进程信息或正在压缩的内容,可能是进程处于等待状态(如阻塞状态),此时 gzip 可能并未执行压缩操作,而是在等待某些系统资源。

建议检查以下系统资源情况:

  • 磁盘空间是否不足;

  • 磁盘 I/O 使用率是否过高;

  • 系统负载是否较大。

可借助 iostatdstat等工具辅助诊断,同时查看系统日志中是否有相关错误或警告信息。

4. 如何禁用 gzip 相关的自启或定时任务

若需彻底禁止 gzip 自动运行,可从以下方面入手:

  • 停止并禁用 crond 服务​:
systemctl stop crond
systemctl disable crond
  • 停止并禁用 logrotate 服务​:
systemctl stop logrotate
systemctl disable logrotate
  • 检查其他自启服务​:

使用以下命令查看所有已启用的服务,禁用与 gzip 相关的服务:

systemctl list-unit-files | grep enabled

注意​:禁用上述服务后,需手动执行日志压缩和轮转操作。如有定时处理需求,可编写自定义脚本并通过 crontab 调度。

5. logrotate 服务中使用 gzip 的场景

在 CentOS 中,logrotate 通常会在以下情况下调用 gzip:

  • 默认配置中,轮转后的日志文件会自动压缩为 .gz格式;

  • 配置文件中如设置 compress选项,将默认使用 gzip 进行压缩;

  • 如设置 compresscmd选项为 gzip 的路径,则强制使用 gzip 压缩。

示例配置段:

/var/log/messages {compresscompresscmd /bin/gzip...
}

实际行为可能因系统版本、logrotate 版本及配置差异而有所不同。

6. 查看 logrotate 执行时间及调度配置

logrotate 默认每日执行一次,其调度配置可通过以下方式查看:

  • 主配置文件:/etc/logrotate.conf

  • 每日调度脚本:/etc/cron.daily/logrotate

该脚本内容通常如下:

#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

如需调整执行频率,可修改 /etc/cron.daily/logrotate或将其移至其他调度目录(如 cron.weekly)。

附:/etc/logrotate.d/ 目录下配置概览

服务名称轮转周期日志路径
zabbix-agent每月一次/var/log/zabbix
glusterfs每周一次/var/log/glusterfs/*.log
/var/log/glusterfs/bricks/*.log
libvirtd每周一次/var/log/libvirt/libvirtd.log
libvirtd.qemu每周一次/var/log/libvirt/qemu/*.log
syslog每周一次/var/log/cron, /var/log/maillog,
/var/log/messages, /var/log/secure
numad每天一次/var/log/numad.log
ppp每天一次/var/log/ppp/connect-errors
psacct每天一次/var/account/pacct
telegraf每天一次/var/log/telegraf

实际轮转操作多发生于凌晨 3 点至 4 点之间。

请不要以此视为定论,这只是我的个人经验

http://www.dtcms.com/a/465095.html

相关文章:

  • Python爬虫实战:获取证监会外国投资机构信息及数据分析
  • seo网站推广费用装饰公司看的设计网站
  • 全栈开发杂谈————JAVA微服务全套技术栈详解
  • 微服务——SpringBoot使用归纳——Spring Boot中使用拦截器——拦截器的快速使用
  • 仿小红书短视频APP源码:Java微服务版支持小程序编译的技术解析
  • 免费行情网站app斗印wordpress增加内存分配给php
  • mysql高可用架构之MHA部署(一)(保姆级)
  • MySQL索引优化实战从慢查询到高性能的解决方案
  • 力扣每日一题(二)任务安排问题 + 区间变换问题 + 排列组合数学推式子
  • LeetCode-33.搜索旋转排序数组-二分查找
  • R语言基础入门详细教程
  • 用wordpress建立学校网站吗人工智能教育培训机构排名
  • 网站及其建设的心得体会wordpress能做大站吗
  • Java SpringMVC(二) --- 响应,综合性练习
  • 【保姆级教程】VMware Workstation Pro 17安装及基础使用
  • 网站开发源代码mvc电子商务网站建设与管理实训报告
  • Bootstrap4 提示框详解
  • 数据分析硬件配置——选购计算机
  • 在Java中,如何实现封装?
  • 【实录】使用 patch-package 修复第三方 npm 包中的 Bug
  • Warm-Flow 1.8.2版本发布|新增功能和优化,体验更稳定
  • 电池组PACK自动化生产线介绍|深圳比斯特自动化
  • 云手机的挂机功能涉及到哪些内容
  • 手机群控软件在游戏运营中的风险管控技术实现
  • js打开网站做欧美市场的网站
  • MongoDB源码delete分析oplog:从删除链路到核心函数实现
  • 运维面试准备——综合篇(一)
  • 线性代数 · 矩阵 | SVD 与 PCA 应用区别
  • 网站漏洞扫描服务个人怎么做公众号
  • 云计算综合标准化体系建设提供系统性指引