玩不断写入光盘?在亚马逊ec2上造成更高的账单【JAVA教程】

!
也想出现在这里? 联系我们
信息

玩不断写入光盘?在亚马逊ec2上造成更高的账单,第1张

概述玩不断写入光盘? 在亚马逊ec2上造成更高的账单

我已经有了一个Amazon EC2微型实例(一个VPN服务器)来玩。

问题是,亚马逊会为您在微型实例中执行的每个光盘IO收取费用。

这个实例正在运行亚马逊linux CentOS。

我已经在服务器上的Play 2.0(.2)框架中启动了一个Scala应用程序,而且我是唯一一个连接到应用程序的人。

我观察到,服务器上的每一秒都会提交IO事务,为了缩小范围,我安装了一个名为iotop的linux程序。

这是几秒钟后的输出。

在Amazon Ec2上为apache用户设置pathvariables

未能将Laravel应用程序部署到EC2

用Nginx从S3服务单个文件Angular应用程序

Amazon EC2微型实例 – 空间不足?

错误在Amazon EC2中的Docker部署 – Docker容器意外退出

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示例。 本质上,它是对输出的回应。 IO甚至没有任何东西通过websocket被推送。

大file upload导致Nginx PHP失败(超过6 GB)

Jupyter笔记本在运行/etc/rc.local时找不到内核

Elastic Beanstalk httpredirect到https

Laravel:调用未定义的函数Symfony Component Console mb_convert_variables()?

在设置Cake PHP后,会话权限被拒绝。

我终于找到了答案。

通过观察Play何时发生IO事务,我立即执行了这个命令:

touch -d \’-10 seconds\’ /tmp/newerthan find / ! -fstype proc -newer /tmp/newerthan

这返回了一个有趣的行:

/tmp/hsperfdata_root/23320

虽然googling在这个我偶然发现来自太阳JVM的BUG ID:5012932 创建子目录“hsperfdata_xxx” 。 Java这样做是为了实现JRE的无创可观性,他们声称这是一个功能,而不是一个错误,这就是为什么它没有得到解决。

提出禁用此“功能”的解决方案是使用未记录的选项-XX:-UsePerfData 。 我尝试了这一点,但不幸的是,Play一直在做IO事务。

但经过一些挖掘后,我发现另一个开关-XX:+PerfdisableSharedMem 。

所以我开始播放之前执行export _JAVA_OPTIONS=\”-XX:+PerfdisableSharedMem\” 。

而…VoilàPlay停止了IO交易!

如果你想知道哪些文件正在被写入,你可以使用inotify-tools软件包中的inotifywait (至少这是Fedora称之为的):

$ inotifywait -r -m /opt /etc /var -e ATTRIB -e CREATE -e MODIFY -e DELETE Setting up watches. Beware: since -r was given,this may take a while! Watches established. /var/tmp/ CREATE etilqs_uOXWfa8v7DkNBgd /var/tmp/ DELETE etilqs_uOXWfa8v7DkNBgd /var/tmp/ MODIFY etilqs_uOXWfa8v7DkNBgd /var/tmp/ MODIFY etilqs_uOXWfa8v7DkNBgd /var/tmp/ MODIFY etilqs_uOXWfa8v7DkNBgd …

显然,用你怀疑有趣的目录替换上面的“/ opt / etc / var”。

这几乎肯定比在循环中运行lsof并刷新其输出效率要高得多。 但是你可能不应该在生产中长时间运行。

无论如何,一旦你知道哪些文件正在被写入,你将会很好地阻止它。 总结

以上是内存溢出为你收集整理的玩不断写入光盘? 在亚马逊ec2上造成更高的账单全部内容,希望文章能够帮你解决玩不断写入光盘? 在亚马逊ec2上造成更高的账单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞86 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容