问题症状
这是一个蛮悲催的bug问题,directadmin官方帮助文档中有此记载,它会长期占用cpu100%,且会造成死机。沈id=402.
其实这个错误的原因远不止这些。但总体解决方案还是一样的。
解决方法
知道了具体问题的原因,至少可以尽量避免和优化,即使不能完全消除。下面就来说说如何处理这类问题。
①首先,如果没有崩溃,但是已知dataskq占用了100%的CPU,那么会执行下面的命令步骤。
在SSH中执行以下命令行;
上面的命令行用于结束当前dataskq进程,清除/usr/local/directadmin/data/admin/brush_log_entries.list空的内容,降低dataskq的优先级。
/usr/local/directadmin/data/admin/brute_log_entries.list该文件保存主机的登录日志,包括登录成功或失败的所有记录。因为全球的网络环境没有那么干净,大量的肉机无时无刻不在扫描破解任何一个ip。因此,文件中可能存储有大量记录,并且该文件属于文本文件。如果长时间没有清理,文件会变得非常大。如果打开一个非常大的文本文件,会占用很多资源。所以要及时清理。
②造成这个问题的情况大多是硬盘占用了大量的IO读写,导致硬盘运行缓慢,然后任何进程都变得非常慢,效率越来越低。由于这是一个长时间运行的过程,内存最终可能会耗尽,然后崩溃。所以我们要检查是否有可能是大量的小文件占用了硬盘,比如messagesystem,也就是directadmin里面的内部邮件提醒。如果有大量的消息邮件,可能会导致点击消息时崩溃,所以我们需要及时清理。您可以在/home/users/Maildir/new/中清理它。例如,如果是管理员用户,那么
rm-f/home/admin/Maildir/new/*然后从面板中删除消息列表。
>/usr/local/directadmin/data/admin/tickets.list此外,directadmin自己的目录中还有一个门票的预留数据,随着时间的推移会不断积累。可以通过以下命令清除它。
rm-rf/usr/local/directadmin/data/tickets/*③手术1和2后,这个治疗结束,暂时正常。接下来,我们将优化directadmin上面的项目。以免下次因为同样的原因犯错。优化的内容有三个。分别是“定期清理消息邮件”、“自动清理brute_log_entries.list的登录日志列表”、“拦截已知恶意ip登录”
定期清理消息邮件:我们可以在图中所示的位置设置一个值作为自动清理日志的合理周期。
自动清理brute_log_entries.list的登录日志列表:我们需要在ssh中创建一个cron调度任务来自动清理空登录日志,如下所示
crontab-e然后编辑内容,比如我们设置为每周五下午2点自动清理brute_log_entries.list。编辑如下
014**5>/usr/local/directadmin/data/admin/brute_log_entries.list然后设置删除票证文件和列表。
015**5rm-rf/usr/local/directadmin/data/tickets/* 215**5>/usr/local/directadmin/data/admin/tickets.list保存内容并重新启动。
servicecrondrestart屏蔽已知的恶意ip登录:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)