所以我们有一个运行java-tomcat的安装程序。 在上传到大文件平台(例如,31MB pdf)的过程中,在我们的RHEL5.5系统上,Sophos savscand服务器进程(两者都是运行,总是有两个正在运行,显然是标准的),并且消耗了整个系统700%+ CPU负载。
在savscand进程死亡之前,系统在cpu过载。
没有更多的信息,你将需要与Sophos开一个支持请求。 红帽支持可能会指出一些可能的原因,但我的预感是在他们检查SOS报告后,他们将指向Sophos。 鉴于你给的信息,我的预感是有一个种族的情况发生的地方。
我意识到这是一个老问题,但就在上周,在运行Centos 6.7的服务器上进行Rackspace更新之后,savscand也出现了类似的问题。 当从另一台服务器将XML文件下载到服务器时,读取XML时更多,savscand会激活CPU。 以前只需要30分钟到1小时的每日更新,现在需要24小时才能处理。 在一周之后,所有的数据都过了几天,这些XML文件正在全天候的处理。 由于导入的顺序很关键,我无法平行import,所以我暂时砍掉了一个肮脏的小屏幕守护进程,以便让事情进展顺利。 我不确定扫描的优先级如何降低,但它确实提高了导入XML文件的性能。 有可能有更清洁,更安全的方法来做到这一点,但是,当我们准备迁移到不同的服务器时,它一直在为我工作:
screen while true; do pgrep -f "savscand" | xargs -I % ps h -o pid,pcpu -p %|grep -oP "[ ]*[0-9]+(?=[ ]+([4-9][0-9]|[1-9][0-9][0-9]).)"|xargs -r -I {} sh -c 'pgrep -f '"'savscand'"' | xargs -I % ps h -o pid,pcpu,ni -p %|grep {};renice +1 {};echo demoted {};date;'; sleep 20;done
如果您不熟悉屏幕,请按Ctrl + A,然后按D分离,并让其无限期地在后台运行。 屏幕-r会让你以后中断它。