我想知道tailf是否可以生成阻塞I / O,这会降低因日志记录而导致的服务器响应速度.
对于前者假设以下设置:
Debian 5.1 linux服务器(foo)通过终端管理(foo托管在EC2上).
Foo运行多个应用程序,每个应用程序都写入自己的日志文件.为了举例,Apache httpd到/var/log/apache/access.log& Tomcat 5.5到/var/log/tomcat5.5/myApp.log.
如果我打开到foo的ssh连接,(注意:Internet链接,高延迟,相对较慢的上传)并运行tail -F /var/log/apache/access.log,我无法达到内核阻止httpd的写入的情况因为在每个线程上执行了等待,所以这个日志文件因此减慢了httpd的性能?
为了给出一些数字,让我们假设foo每秒记录大约200kb的日志数据,需要通过网络将其推送到ssh客户端.
另一个理论方面:如果/ var / log文件系统设置在无限大小的ram上(请记住:从理论上说),以便消除硬盘寻道时间会发生什么?
第三个方面,如果我从一个非常慢的链接打开ssh连接会发生什么(让我们假设foo的流量形状只能推送5kb / s上传)?
很想听听你的想法.
谢谢阅读,
格言.