Solr 性能(tomcat)-高负载

Solr 性能(tomcat)-高负载

我对 solr 还比较陌生。我有一个在 VPS 上运行的生产站点,但现在我遇到了严重的负载问题。我不知道从哪里开始才能降低负载...

VPS 规格 (linode.com 512)

  • 512 MB 内存
  • 4 CPU(1x 优先级)

看起来我的 solr 服务器 (tomcat) 占用了大量的 CPU 资源

在此处输入图片描述

您可以在以下位置找到我的 solrconfig.xmlhttp://pastebin.com/qdfi8Med 和我的schema.xmlhttp://pastebin.com/rRusDP8b

我尝试增加缓存大小,但这对负载没有任何影响。您可以在下面查看统计页面。

编辑 - 因为截图不清楚,如果(我认为)重要的话,我截取了较小的截图。

Dismax 查询处理程序统计信息

Dismax 查询处理程序统计信息

缓存统计数据 在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

谢谢您的帮助!

答案1

根据我的经验,Solr 非常耗费资源。根据您的屏幕截图,您试图在具有 512MB RAM 的服务器上每秒处理 21 个请求。很简单,您可能只需要投入更多硬件来解决这个问题,以控制它。

答案2

首先,512MB 对于运行带有 Tomcat 的 Solr 3.6 来说有点太小了,Solr 4.0 可能会崩溃。我曾经在 EC2 micro 上运行 Solr 4.0,它有 613 MB 内存。这不足以运行一个小型 Solr 网站(5-10 个请求/秒)

要安全地运行 Solr,您需要 1GB 的 linode。但我建议使用 2GB 的机器来顺利运行 SOLR。

在我的 1.6GB 小型 EC2 服务器上,我将 SOLR 最大内存设置为 1.2GB,并将剩余的 400MB 用于操作系统缓存和其他小型服务,如 monit、munin、ssh、apt-get、rsync、备份等。

这是我在 .bashrc 文件上设置的 JAVA_OPTS:

export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/"
export SOLR_HOME="/mnt/Solr/Home"
export CATALINA_HOME="/mnt/Tomcat/Home"
export LOGGING_CONFIG="-Djava.util.logging.config.file=/dev/null"
unset JAVA_OPTS
export JAVA_OPTS="$JAVA_OPTS -Xms1200m -Xmx1200m -server -d64 -XX:MaxPermSize=200m"
export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/mnt/Solr/Home"

与 Linode 相比,Amazon EC2 CPU 非常低,但由于 Solr 几乎不使用 CPU 但占用很高的内存,因此它的性能非常好……对于大型 Solr 服务器,您可以选择 EC2 中型服务器。

PS。我还注意到您的屏幕截图显示,kswapd0 进程占用了大量 CPU IO 时间。我在使用 linode 时也遇到了这个问题,这是因为内核过时。您应该使用较新的内核重新启动您的机器。

相关内容