Skip to content

Conversation

shivamashtikar
Copy link
Contributor

Description

Key Changes:

Searchnode (Most Critical):

  • Before: -Xms4g -Xmx6g (only 6GB max)
  • After: -Xms80g -Xmx140g (140GB max)
  • This is the critical fix - your searchnode was using 102GB RSS but only had 6GB heap, causing constant OOM crashes

Content Node:

  • Before: -Xms10g -Xmx14g
  • After: -Xms20g -Xmx40g
  • Handles document storage and metadata

Query Container:

  • Before: -Xms8g -Xmx12g
  • After: -Xms4g -Xmx8g
  • Reduced to free up memory for searchnode (this was being overridden anyway)

Config Server:

  • Before: -Xms2g -Xmx4g
  • After: -Xms1g -Xmx2g
  • Reduced to prioritize searchnode

Added GC Tuning:

  • MaxGCPauseMillis settings to reduce latency during garbage collection
  • Kept heap dump on OOM for debugging

Memory Allocation Summary:

  • Searchnode: 140GB (main component)
  • Content: 40GB
  • Container: 8GB
  • Config Server: 2GB
  • Other components: ~2GB
  • Total: ~192GB (within your 220GB limit, leaving ~28GB for OS and buffers)

Testing

Additional Notes

…ners

- Trim config-server heap from 4 GB to 2 GB and config-proxy from 2 GB to 1 GB to free memory for search nodes
- Reduce main query container heap from 8 GB to 4 GB with tighter GC pause settings for smoother query handling
- Dramatically increase content node heap from 10/14 GB to 20/40 GB and search node heap from 4/6 GB to 80/140 GB to accommodate 102 GB dataset and heavy embeddings/indexes
- Add MaxGCPauseMillis flags and heap‑dump paths for larger nodes
- Keep support components lightweight to maintain overall resource efficiency
@shivamashtikar shivamashtikar changed the base branch from main to release-20251007 October 10, 2025 10:51
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @shivamashtikar, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request primarily focuses on optimizing memory allocation for Vespa components to prevent OOM errors and improve stability, particularly for the searchnode handling large datasets. It also includes a frontend enhancement for dynamic chat UI spacing during streaming and a hotfix for an integration issue with the Google Drive agent in the backend.

Highlights

  • Vespa Memory Allocation Tuning: Significantly increased JVM heap sizes for the searchnode (from 6GB max to 140GB max) and content node (from 14GB max to 40GB max) to address out-of-memory issues and improve performance for large datasets.
  • Resource Reallocation: Reduced JVM heap sizes for the config server (from 4GB max to 2GB max) and query container (from 12GB max to 8GB max) to free up memory for the critical searchnode component.
  • Garbage Collection Optimization: Introduced MaxGCPauseMillis settings for container, content, and searchnode JVM arguments to reduce latency during garbage collection.
  • Dynamic Chat UI Adjustment: Implemented a new useEffect hook in the frontend chat component to dynamically adjust the bottom spacing as streaming content grows, ensuring a consistent user experience.
  • Google Drive Agent Hotfix: Added a temporary fix to the backend to block Google Drive agent queries from the getItems function, addressing an integration issue.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 10, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch vespa-fix-env

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adjusts the JVM memory settings for various Vespa services to address OutOfMemory errors, primarily by significantly increasing the heap size for the searchnode. The changes are well-described and seem to correctly address the performance issues. My review includes a couple of suggestions to improve configuration clarity and ensure consistent debugging capabilities across all services.

@shivamashtikar shivamashtikar merged commit b2b387b into release-20251007 Oct 10, 2025
3 of 4 checks passed
@shivamashtikar shivamashtikar deleted the vespa-fix-env branch October 10, 2025 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants