我们运行一个元search引擎(价格比较),其中每个search在各个网站上产生大量的实时search,并在我们的网站上呈现合并和sorting的search结果。 我们在Linux Debian服务器上使用PHP / MySQL / Apache进行了一个非常直接的设置,但是并行search多个站点的后台处理由Tomcat和一个Java servlet处理。 但是,由于这个设置(Tomcat)的一些问题,我正在调查新的方法来进行背景search。 一种看起来很有前途的方法也很简单:在主search页面中,每个单独的search脚本都使用exec()作为PHP CLI运行: exec("nohup /usr/bin/php search.php '$params' &> /dev/null &"); 最后使用&符将PHP CLI脚本直接发送到后台,主页面可以继续而不用等待。 每个search都有大约20个脚本运行。 它似乎performance不错,但是当我用并发请求使用Apache Benchmark进行压力testing时,问题就开始显现出来。 发生什么事是MySQL报告这个错误: 无法通过套接字“/var/run/mysqld/mysqld.sock”(11)连接到本地MySQL服务器 它似乎是“太多连接”的变体,但它无助于提高my.cnf的限制。 但是让我感到困惑的是,即使我调用一个什么都不做的小虚拟脚本,并且肯定不会访问MySQL,这些错误仍然存在。 所以,看起来就像运行PHP CLI,即使没有使用MySQL也会加载。 在我的testing中,最多可以运行700个PHP实例,CPU和内存的负载比使用Tomcat调用PHP脚本要低,所以从这个angular度来看,它看起来是可行的。 有人有关于MySQL问题的线索吗? 当然,我很乐意接受如何处理后台任务的新想法! 问候,马丁
我们正在推出一个新的远程桌面服务服务器,并决定现在可能在其上安装防病毒软件。 当我们等待供应商/供应商向我们介绍授权选项时,是否有人可以解释在多用户远程桌面服务器环境中各种AV软件如何工作(在stream程/服务方面)? 他们使用: 后台服务没有每个用户的组件? 每用户组件? 别的东西? 这个问题表明,ESET有一个后台服务,赛门铁克会为每个用户加载一个实例; 其他AV程序在远程桌面服务器上做什么? 具体来说,我正在考虑Symantec Endpoint Protection,趋势科技和Microsoft Forefront。
我正在研究Rails应用程序的内存使用情况(它通过Resque使用后台进程),而且由于“有多less工作人员太多”这个问题的常见问题是“testing和看见”,所以我运行了一些内存命令如果有人可以帮助确定内存使用是否足够高,或者我仍然可以添加一些额外的工人。 所以(这是所有的最大负载下): $ free -t -m total used free shared buffers cached Mem: 1756 1532 223 0 12 229 -/+ buffers/cache: 1291 464 Swap: 895 10 885 Total: 2652 1543 1108 $ vmstat procs ———–memory———- —swap– —–io—- -system– —-cpu—- rb swpd free buff cache si so bi bo in cs us sy id wa 0 […]
我正在运行的Linux和我在后台运行脚本/程序使用 cmd& 这在Solaris上正常工作,但是在我的Linux机器上(2.6.9-55 / Red Hat),当原始terminal窗口closures/失去连接时,后台进程停止。 我需要改变这一点,以便它在Solaris上工作?
我有一个python脚本,它在等待redis列表中的数据时监听和阻止。 它在新贵运行良好使用以下内容: description "stage message consumer" author "Nilesh Ashra" start on started mountall stop on shutdown respawn exec sudo -u user REDIS_HOST=0.0.0.0 ENVIRONMENT=my_env /usr/bin/python /path/to/message_consumer.py 我的问题是,我可以用新贵搞起来说这12个吗? 如果没有,你可以推荐一种方法来做到这一点?
你已经有了一个正在运行的进程,你想把它放在后台运行。 如果你想确定在closures你的ssh连接之后这仍然会运行,你应该怎么做? 注意:当你想做出这个决定时,你已经在运行这个过程。 我知道Ctrl-Z和bg会让它在后台运行,但是当你closuresssh连接时,恐怕进程将会被终止。
我想运行一个批处理脚本: 启动一个后台进程(一个Selenium RC服务器,如果有的话); 等待后台进程开始监听某个端口(或等待一段时间); 运行一些指令; 停止后台进程。 我写了这个: start java -jar "path\selenium-server.jar" ping -n 5 127.0.0.1 >NUL "path\Gallio.Echo.exe" "path\MyAssembly.dll" REM now, how do I stop the background process?
我ssh进入服务器,而不是开始一个工作(例如rsync),那么我只是想能够从服务器注销,让这个工作顺利进行。 但是,如果我只是做rsync … &我认为它仍然以某种方式连接到tty,并且当tty在注销时消失,工作就会死亡。 是否有任何(简单)的方式从tty断开进程,以便能够注销而不会终止进程?
我使用supervisord的[program:x]来保持我的后台队列运行。 numprocs的数量被设置为一个静态数字,但现在我正在寻找一个解决scheme,根据队列的工作量来dynamic调整进程数量。 是否有可能(以编程方式)更改supervisord的numprocs设置的数量,而不影响已经运行的工人?
当我需要在低重要的服务器上启动后台进程时,我倾向于使用nohup: nohup ./server.sh & 大多数同事似乎更喜欢屏幕: screen -D -R mydaemon ./mydaemon.sh ^A ^D 这两种方法的效果是否有重大差异? 这种或那种方式有什么好处?