关闭开机启动的mlocate的updatedb
今天打开虚拟机,但是运行速度十分之慢,就连ssh也连接了半天才上去,各种命令也响应得非常缓慢,先用top命令查看,cpu占用率很低,大部分时间是在等待io上
接着用iotop命令查看了下io的访问,找到了罪魁祸首updatedb,这是mlocate的数据库更新计划,网上的文章大多是在/etc/cron.daily下删除mlocate这个定时任务,但我是fedora27,在这个目录下并没有mlocate这个文件
于是突发奇想,使用
locate mlocate
其中有两行的结果让人特别在意
/usr/lib/systemd/system/mlocate-updatedb.service /usr/lib/systemd/system/mlocate-updatedb.timer
然后打开两个文件看了一眼,立马确定这个就是启动的源头,在fedora新版中(不知道其他版本是否也是这样),很多东西已经由systemd接管了,mlocate-updatedb.timer所对应的执行文件就是mlocate-updatedb.service,在mlocate-updatedb.service中,是没有[Install]一栏的,所以无法简单的使用 systemctl enable来实现开机启动,这里面的timer可以替代原本的crond,详情可参考systemd/Timers (简体中文)
然后事情就很简单了
systemctl disable mlocate-updatedb.timer