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