Home / Companies / CircleCI / Blog / December 2017

December 2017 Summaries

2 posts from CircleCI

Filter
Month: Year:
Post Summaries Back to Blog
Managing Java's memory usage in a continuous integration (CI) environment like CircleCI can be challenging due to the variety of build frameworks and environment variables involved. Different variables such as _JAVA_OPTIONS, JAVA_TOOL_OPTIONS, JAVA_OPTS, JVM_OPTS, GRADLE_OPTS, and MAVEN_OPTS can be set to control memory usage, each with varying levels of precedence and specificity to certain tools or languages. The Java Virtual Machine (JVM) is notorious for pre-allocating large amounts of memory, which can lead to out-of-memory (OOM) errors, commonly indicated by an exit code 137. These errors are often difficult to diagnose because error messages typically do not mention memory issues directly. However, recent updates allow Java to read memory limits from Docker containers, potentially improving memory management. It is essential to balance the JVM's memory allocation to ensure it is sufficient for Java applications while allowing other processes to function within the shared memory environment of CI platforms like CircleCI.
Dec 06, 2017 1,083 words in the original blog post.
The text reflects on the insights gained by a developer who transitioned to a site reliability engineer (SRE), emphasizing the importance of understanding underlying infrastructure, writing efficient code with clear documentation, implementing focused tests, ensuring code security, and managing time effectively. The author highlights the initial oversight in understanding infrastructure and the necessity of structured documentation and commit messages for better code reviews and debugging. Furthermore, the piece underscores the critical role of security in maintaining customer trust and the importance of rigorous testing to prevent system failures. The SRE experience has also enhanced the author's time management and attentiveness, especially during on-call shifts, illustrating the value of organization and focus in maintaining system reliability and scaling systems effectively. This transformation has led to a broader architectural perspective, emphasizing the significance of scalable and secure design in software development.
Dec 05, 2017 982 words in the original blog post.