我有3台服务器,其流程需要所有可以获得的CPU。我让这些进程将其标准输出写入文件
./run.sh > run.log
这篇文章是否会减慢这个过程? (./run.sh脚本启动例如Java程序,有时是Ruby程序)
现在我想创建一个Web界面,在运行时显示脚本的输出。我可以想象编写一个每5秒刷新一次的PHP脚本,创建与服务器的SSH连接并获取run.log文件。
但这不会干扰这个过程或减慢它的速度吗? 服务器能够尽可能多地使用它是非常重要的。或者有更好的方法来处理这个问题吗?不是每5秒创建一次SSH连接,而是使用Ajax进行持久连接和更新? (安全性不是必需的)
答案 0 :(得分:1)
这篇文章是否会减慢这个过程? (./run.sh脚本启动例如Java程序,有时是Ruby程序)
也许;如果进程写入大量数据,则很容易减慢进程,因为进程可能会同步写入磁盘。否则,你不必担心。
另一种方法是使用一种设置,脚本通过某种消息服务将输出发送到带有Web应用程序的机器。这样可以避免轮询服务器;它是否会更有效取决于细节。
一个简单有效的机制是将stdout转发到UDP套接字,让Web应用程序在循环缓冲区中临时监听和存储这些消息。