Hi everyone,
We are experiencing performance issues on a two-node Virtuoso cluster. We use the free version. In the logs, we repeatedly see the following warning:
WARNING: * Monitor: System is under high load. Adding cluster nodes or using more replicated copies may be needed
At the same time, the CPU on one of the nodes spikes close to 100%, and the system becomes very slow.
Some details about our nodes:
RAM: 32 GB per node
CPU: 16 cores per node
Two-node cluster, default Virtuoso configuration
Our impression is that the issue may not be related to RAM availability, but rather to inefficient memory usage by Virtuoso, since CPU usage becomes critical even though there is still free memory.
We would like to understand:
-
If anyone has experienced the same warning and what strategies helped.
-
How to optimize memory usage in Virtuoso to reduce CPU load.
-
Whether it is recommended to add more nodes or adjust data replication to better balance the load?
I found out that in virtuoso.ini we have these value
ThreadsPerQuery = 4
NumberOfBuffers = 680000
MaxDirtyBuffers = 500000
considering this info for the first node:
bin/isql
OpenLink Virtuoso Interactive SQL (Virtuoso) Version 07.20.3238 as of Jul 25 2024 Type HELP; for help and EXIT; to exit.
SQL> status();
Connected to OpenLink Virtuoso
Driver: 07.20.3238 OpenLink Virtuoso ODBC Driver REPORT VARCHAR _______________________________________________________________________________
OpenLink Virtuoso Server
Version 07.20.3238-pthreads for Linux as of Jul 25 2024 (d89671fa1) Started on: 2025-09-25 23:39 GMT+2
CPU: 662.58% RSS: 6599MB
Database Status:
File size 2499805184, 5548032 pages, 1592862 free.
680000 buffers, 292904 used, 3 dirty 18 wired down, repl age 0 0 w. io 7 w/crsr.
Disk Usage: 293390 reads avg 0 msec, 0% r 0% w last 0 s, 3367 writes flush 0 MB/s,
1278 read ahead, batch = 224. Autocompact 0 in 0 out, 0% saved.
Gate: 2166 2nd in reads, 0 gate write waits, 0 in while read 0 busy scrap.
Log = /data/usr/local/var/lib/virtuoso/db/virtuoso.trx, 1254 bytes
616725 pages have been changed since last backup (in checkpoint state) Current backup prefix: backup_# Current backup timestamp: 0x6E24-0x72-0xB2 Last backup date: Thu Jul 25 11:31:03 2024
Clients: 1 connects, max 1 concurrent
RPC: 4 calls, 1 pending, 1 max until now, 0 queued, 0 burst reads (0%), 0 second 40M large, 120M max Checkpoint Remap 0 pages, 0 mapped back. 1 s atomic time.
DB master 5548032 total 1592862 free 0 remap 0 mapped back
temp 1536 total 1531 free
Lock Status: 0 deadlocks of which 0 2r1w, 0 waits,
Currently 10 threads running 0 threads waiting 0 threads in vdb.
Pending:
Client 1111:1: Account: dba, 203 bytes in, 286 bytes out, 1 stmts.
PID: 5675, OS: unix, Application: unknown, IP#: 127.0.0.1 Transaction status: PENDING, 1 threads.
Locks:
Running Statements:
Time (msec) Text
124 status()
Hash indexes
40 Rows. -- 125 msec.
And this for the second node:
bin/isql
OpenLink Virtuoso Interactive SQL (Virtuoso)
Version 07.20.3238 as of Jul 25 2024
Type HELP; for help and EXIT; to exit.
SQL> status();
Connected to OpenLink Virtuoso
Driver: 07.20.3238 OpenLink Virtuoso ODBC Driver
REPORT
VARCHAR
_______________________________________________________________________________
OpenLink Virtuoso Server
Version 07.20.3238-pthreads for Linux as of Jul 25 2024 (d89671fa1)
Started on: 2025-09-24 17:16 GMT+2
CPU: 1108.64% RSS: 6481MB
Database Status:
File size 2510290944, 5549312 pages, 1604217 free.
680000 buffers, 287495 used, 3 dirty 22 wired down, repl age 0 0 w. io 9 w/crsr.
Disk Usage: 288203 reads avg 0 msec, 0% r 0% w last 0 s, 8237 writes flush 8.772 MB/s,
1243 read ahead, batch = 227. Autocompact 0 in 0 out, 0% saved.
Gate: 1321 2nd in reads, 0 gate write waits, 0 in while read 0 busy scrap.
Log = /data/usr/local/var/lib/virtuoso/db/virtuoso.trx, 3564 bytes
609108 pages have been changed since last backup (in checkpoint state)
Current backup prefix: backup_#
Current backup timestamp: 0x273A-0x1F-0xF6
Last backup date: Thu Jul 25 12:00:20 2024
Clients: 1 connects, max 1 concurrent
RPC: 4 calls, 1 pending, 1 max until now, 0 queued, 0 burst reads (0%), 0 second 52M large, 118M max
Checkpoint Remap 19 pages, 0 mapped back. 4 s atomic time.
DB master 5549312 total 1604217 free 19 remap 0 mapped back
temp 6656 total 6651 free
Lock Status: 0 deadlocks of which 0 2r1w, 0 waits,
Currently 10 threads running 0 threads waiting 0 threads in vdb.
Pending:
Client 1111:1: Account: dba, 203 bytes in, 286 bytes out, 1 stmts.
PID: 32022, OS: unix, Application: unknown, IP#: 127.0.0.1
Transaction status: PENDING, 1 threads.
Locks:
Running Statements:
Time (msec) Text
121 status()
Hash indexes
40 Rows. -- 122 msec.
How can I fix this situtation?
Any suggestions are very welcome.
Thank you
- List item