在Amazon AWS部署运行S2JH,IO次数异常分析

周末抽空注册申请了Amazon AWS的一年可用的“免费套餐”:http://aws.amazon.com/cn/free/ ,考虑为S2JH搭建一个在线的Demo运行样列。

(顺便提供一个经验分享:在注册过程中需要使用信用卡,还会以电话回拨方式进行身份验证,这个地方要注意等英语说完了才输入PIN码才能成功,前面几次我是以为像移动联通的自动语音系统一样无需等待电脑语音说完直接提前就输入,发现几次的验证失败,害我等了几个12小时验证限制期后才注册成功)

目前已基本完成部署运行,测试可以访问,但是由于发现IO次数消耗太大,暂时不开放,待下个月计费周期更新开放访问地址。

今天看了一下AWS活动统计,发现2百万的免费IO次数已经消耗1百多万,心想没这么夸张吧,这样下去信用卡账单一不小心就爆掉了:

在Amazon AWS部署运行S2JH,IO次数异常分析_第1张图片


接下来进一步查看分析相关的统计报表,IO Write总量不大,而发现在一个时间点有上百万大量的IO Read操作,看来就是这个操作瞬间拉高了总的IO次数:

在Amazon AWS部署运行S2JH,IO次数异常分析_第2张图片

然后想想为啥有这么巨大的IO读取操作,无非就是安装运行了JDK/Jetty,不可能有这么海量的读取操作啊。后来突然想到我在安装配置过程好像用了 find / -name 命令查找了一下我需要的文件,这个是整个系统根目录扫描,这样的整盘搜索操作估计IO Read很高。

于是,在自己的Ubuntu系统上面验证了一下,执行find /命令,用iostat看了一下,达到几百上千的TPS,看来很可能就是这个操作导致的了。以后可千万没事在AWS EC2下面使用find /这样杀伤力太强的命令啊。

经验总结:AWS的计费是非常强大和精细的,涉及硬件软件资源的各个方面,无论是免费还是商业用户,都需要精打细算才能避免不必要的收费。看来使用初期,一定要做好随时的监控分析,及时优化部署运行环境,否则一不小心就要收到天价账单啊!

你可能感兴趣的:(在Amazon AWS部署运行S2JH,IO次数异常分析)