今天排查一台麒麟V10服务器故障,使用sar命令查看内存的历史使用数据,发现采样间隔是10分钟,

采样间隔太大,需要调整成2分钟。发现原来在CentOS中的方法不能用了。在CentOS 7中,修改配置文件“/etc/cron.d/sysstat”即可,
查询文档发现麒麟V10使用了systemd的定时器(即timer)来控制采样的间隔。要在麒麟V10中修改采样间隔,更新文件“/usr/lib/systemd/system/sysstat-collect.timer”,

修改完成后,执行下面命令,
systemctl daemon-reload
systemctl restart sysstat-collect.timer
修改后,达到预期,

什么是Systemd定时器?
它是 Systemd 单元文件的一种,其名称以“ .timer”结尾,用于控制 “.service ”文件或触发事件。定时器可以作为 cron 的替代方案。定时器内置对基于日历时间的事件和基于单调时间的事件的支持,并且可以异步运行。
如果一个服务“myapp.service”需要定期执行,只需要在目录“/etc/systemd/system”下创建一个同名但以“.timer”结尾的文件即可,这里要创建的定时器Unit文件就是“myapp.timer”,这样它们就可以自动绑定。
我们还是以sysstat为例,收集服务器性能参数的服务为“sysstat-collect.service”,
# /usr/lib/systemd/system/sysstat-collect.service
# /usr/lib/systemd/system/sysstat-collect.service
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-12.2.1 systemd unit file:
# Collects system activity data
# Activated by sysstat-collect.timer unit
[Unit]
Description=system activity accounting tool
Documentation=man:sa1(8)
After=sysstat.service
[Service]
Type=oneshot
User=root
ExecStart=/usr/lib64/sa/sa1 1 1
这里注意,服务的单元文件不需要“[Install]”部分,它的“[Install]”定义在定时器单元文件中。
控制服务“sysstat-collect.service”的定时器单元文件为“sysstat-collect.timer”,
# /usr/lib/systemd/system/sysstat-collect.timer
# /usr/lib/systemd/system/sysstat-collect.timer
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-12.2.1 systemd unit file:
# Activates activity collector every 2 minutes
[Unit]
Description=Run system activity accounting tool every 2 minutes
[Timer]
OnCalendar=*:00/02
[Install]
WantedBy=sysstat.service
使用systemd的定时器,就可以方便的配置定时任务。
276

被折叠的 条评论
为什么被折叠?



