我有一个 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。