当我构建一个EC2实例m1.small(例如)时,通过deafult我得到30gb而不是160gb。
我在google中看到我需要添加临时存储/实例存储空间.. 我的问题: 有没有办法使用java sdk添加临时存储? 如果我创建一个标准卷160gb的实例(使用sdk),我会收费,好像我正在创建一个常规实例并为其附加一个新卷?
更一般地说,当他们写一个实例有160gb时, 这意味着我只有30gb和另外140gb,我只能用于临时文件,我不介意丢失?
提前致谢。
答案 0 :(得分:0)
您不应该尝试使堆大小远大于主内存大小。 AFAIK EC2不提供超过160 GB主内存的机器(我可能错了)http://aws.amazon.com/ec2/instance-types/
如果你在谈论这个实例
M1 Small Instance – default++
1.7 GiB memory
1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)
160 GB instance storage
32-bit or 64-bit platform
I/O Performance: Moderate
EBS-Optimized Available: No
API name: m1.small
这样可以使用大约1.2到1.5 GB的堆和160 GB的本地磁盘空间。
AFAIK,您可以将存储作为常规文件访问。
BTW:Java可能需要更长的时间才能在大堆大小上执行Full GC。根据您的系统,最差时间可能是每1-4 GB 1秒。您可以预期具有160 GB堆的系统可以看到40秒的世界级GC。出于这个原因,经常探讨关闭堆选项,例如使用数据库,BigMemory或使用直接内存/内存映射文件。