From: Jianshi H. <jia...@gm...> - 2011-10-21 07:12:53
|
Hi, I'm using a lot of memory (> 25GB) in my latest project. But it seems SBCL still isn't happy with the max_map_count setting (I've already increased it to 262144). I guess I need to increase the GENCGC-CARD-BYTES. My question is: what is the best practice for using SBCL with very large heap? The final benchmark of my program is estimated to use 100GB of memory. The GC overhead seems hard to eliminate, since in Generational GC, sb-ext:purify is not implemented. Fortunately, most of the data is read-only so current I'm saving a core file after reading all the data. Error messages are as follows: An mprotect call failed with ENOMEM. This probably means that the maximum amount of separate memory mappings was exceeded. To fix the problem, either increase the maximum with e.g. 'echo 262144 > /proc/sys/vm/max_map_count' or recompile SBCL with a larger value for GENCGC-CARD-BYTES in 'src/compiler/target/backend-parms.lisp'. Cheers, -- 黄 澗石 (Jianshi Huang) http://huangjs.net/ |