You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@griffin.apache.org by GitBox <gi...@apache.org> on 2019/10/31 14:40:42 UTC

[GitHub] [griffin] wankunde opened a new pull request #546: [GRIFFIN-295]Limit the memory used by test case

wankunde opened a new pull request #546: [GRIFFIN-295]Limit the memory used by test case
URL: https://github.com/apache/griffin/pull/546
 
 
   The container memory size is 3G in travis, but out test cases always uses more than 3G memory, so `Cannot allocate memory` will be thrown.
   
   ```
   Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fe980000, 23592960, 0) failed; error='Cannot allocate memory' (errno=12)
   #
   # There is insufficient memory for the Java Runtime Environment to continue.
   # Native memory allocation (mmap) failed to map 23592960 bytes for committing reserved memory.
   # An error report file with more information is saved as:
   # /home/travis/build/apache/griffin/measure/hs_err_pid11948.log
   # [ timer expired, abort... ]
   ```
   
   There are two kind of programs in our tests, the maven main program and the tests run by maven-surefire-plugin and scalatest-maven-plugin.
   If the memory is not limited, test cases will occupy more and more memory especially spark jobs.
   
   Each spark job has a HeapMemoryAllocator object for managing memory,which stores many internal objects in memory to speed up calculation.
   But even if we stop the spark context, it will not release memory, which is strange. so we need to limit the momery used by test cases.
   
   We can limit the maven memory used by set export MAVEN_OPTS=" -Xmx1024m -XX:ReservedCodeCacheSize=128m" , and we can limit the memory used by spark job tests by configuring the maven-surefire-plugin and scalatest-maven-plugin.
   
   For example:
   Before we limit the memory used, maven program occupy 1.5G memory and spark job occupy 1.8G memory.
   <img width="1153" alt="1" src="https://user-images.githubusercontent.com/3626747/67956554-40108e00-fc2f-11e9-83de-d0840fb42cb7.png">
   <img width="1150" alt="2" src="https://user-images.githubusercontent.com/3626747/67956567-46066f00-fc2f-11e9-8a73-6d141be28e70.png">
   
   
   After we limit the memory used, maven program occupy 1G memory and spark job occupy 1G memory.
   <img width="1142" alt="3" src="https://user-images.githubusercontent.com/3626747/67956579-4999f600-fc2f-11e9-9cd4-9032966ca923.png">
   <img width="1139" alt="4" src="https://user-images.githubusercontent.com/3626747/67956586-4dc61380-fc2f-11e9-800b-1d26d637a479.png">

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services