Skip to main content
Go to documentation:
⌘U
Weaviate Database

Develop AI applications using Weaviate's APIs and tools

Deploy

Deploy, configure, and maintain Weaviate Database

Query Agent

Run agentic search over your Weaviate Cloud collections

Weaviate Cloud

Manage and scale Weaviate in the cloud

Engram

Persistent memory for LLM agents and applications

Additional resources

Integrations
Weaviate Academy

Need help?

Weaviate LogoAsk AI Assistant⌘K
Support
Community Forum
Contributor guide

Improve your cluster

Just started Weaviate?

This page is linked from the banner Weaviate logs once a cluster is up. If you just ran it for the first time, the checklist is for later: start with the quickstart and connect a client, and come back once you have data you would mind losing.

Most errors in the error messages reference come from clusters that were short on headroom, unmonitored, or behind on versions. This page lists what to change so the next one does not happen. Do it once at setup and again when the workload changes shape: a new collection, many more tenants, a much larger import.

Give the cluster headroom

Weaviate fails safely when it runs out of a resource: shards go read-only or refuse to load rather than corrupting data. That is the behavior you want, but it is still an outage, and every one of these limits is knowable in advance.

  • Size memory for the working set, not the averageResource planning

    Set GOMEMLIMIT, or LIMIT_RESOURCES and let Weaviate derive it. Without one, the runtime assumes it may use the whole machine and gets killed by the container limit instead of collecting garbage harder.

  • Treat 90% disk as the ceiling, not the targetDisk thresholds

    Weaviate warns above 80% and marks shards read-only above 90%, both tunable. Compaction and backups need free space too.

  • Raise the memory-mapping limitThe fix

    Every shard costs kernel memory mappings, and the limit is a host setting, not a container one. Thousands of active tenants on one node pass a distribution default.

  • Compress vectorsCompression

    Vector indexes are the largest consumer and quantization is the biggest single lever: a small amount of recall for a large reduction in memory, and it can be enabled on a collection you already have.

  • Keep inactive tenants out of memoryTenant states

    Tenants you are not serving should not be resident. Deactivating or offloading them returns memory, mappings, and file handles.

Survive the loss of a node

A single-node cluster has no bad days, only outages. If Weaviate holds data you cannot rebuild quickly from somewhere else, it needs more than one copy.

  • Set a replication factor above oneReplication

    On collections that matter, and when you create them: raising it later copies data across the network at a moment you probably did not choose.

  • Use an odd number of nodes

    So the cluster can still form a majority when one is lost.

  • Choose consistency levels deliberatelyConsistency

    Weaviate lets you pick per request, so the write path and the read path can make different trade-offs.

  • Turn on async replicationAsync replication

    Replicas that fall behind, or miss writes while restarting, repair themselves in the background instead of serving stale results until someone notices.

Find out before your users do

Every resource limit above announces itself in the logs and in the metrics well before it becomes an outage. That warning is only worth having if something is reading it.

  • Scrape the metrics endpointMonitoring

    Weaviate exposes Prometheus metrics, and there is a ready-made Grafana setup to start from.

  • Alert on the leading indicators

    Alert on heap usage against the limit, disk usage against the read-only threshold, and shards reporting read-only. Request failures come last; by then users have noticed.

  • Collect the logs somewhere searchableLogging

    Weaviate logs JSON by default, so the fields are queryable without parsing message text. Alert on the action field rather than on wording, which changes between releases.

  • Watch the cluster node data for shards that are not readyCluster status

    It is the fastest way to tell a slow cluster from a partly broken one.

Be able to go back

Replication protects you from losing a node. It does not protect you from a bad import, a mistaken deletion, or a schema change you want to undo, because all three replicate perfectly.

  • Configure a backup backend and a scheduleBackups

    To storage that is not the cluster's own disk.

  • Restore one

    An untested backup is a hypothesis. Restore into a scratch cluster and query it, at least once, before you need it to work.

  • Check what a backup covers

    Against what you would need to rebuild, including collection configuration and inactive tenants.

  • Keep persistence on a volume that outlives the containerPersistence

    A container restart should not be a data-loss event.

Stay current

Running a version that is a year old means carrying every bug that has since been fixed, and paying for the upgrade later anyway, in one larger jump.

  • Read the release notes before upgradingRelease notes

    And the migration guide when there is one.

  • Check the known issues page when something is strangeKnown issues

    A surprising number of one-off mysteries are documented there with a version number attached.

  • Keep clients within the server's supported rangeSupport policy

    Client and server versions move independently, and a large gap between them is a common source of confusing errors.

More ways to run and extend Weaviate

Everything above applies to a cluster you run yourself. If running it is not the part you want to own, or you want more than the database:

Further resources

Questions and feedback