我有一个 Amazon ec2 微型实例(一个 VPN 服务器)可以玩。
问题是亚马逊会为您在微型实例中执行的每个磁盘 IO 收取费用。
该实例运行的是 CentOS 风格的 Amazon Linux。
我已经在服务器上的 Play 2.0(.2) 框架中启动了一个 Scala 应用程序,并且我是唯一一个连接到该应用程序的人。
我观察到服务器上每隔几秒就会提交 IO 事务,为了缩小范围,我安装了一个名为iotop.
这是几秒钟后的输出。
TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    
23333 be/4 root        0.00 B/s   11.91 K/s  0.00 %  0.00 %  
COMMAND java -Dsbt.ivy.home=/usr/play-2.0.2/framework/../repository -Djava.runtime.name=OpenJDK ~/jars/slf4j-api.jar:/usr/play-2.0.2/repository/local/org.slf4j/jul-to-slf4j/1.6.4/jars/j
来自日志文件的猫
cat /home/ec2-user/socketTest/logs/application.log
2012-07-05 11:43:31,881 - [INFO] - from play in main
Listening for HTTP on port 9000...
所以 Play 不会向日志文件写入任何内容。
第一个问题我是否理解 iotop 正确,Play 确实是磁盘 IO 窃贼。
如果是这样,为什么玩使用 IO?
我的应用程序是一个简单的 websocket 示例。本质上,它将输入回显到输出。即使您没有通过 websocket 推送任何内容,也会发生 IO。