Skip to content
pvmehta.com

pvmehta.com

  • Home
  • About Me
  • Toggle search form
  • How to find who is using which Rollback segment and how many rows or blocks in that rollback segments, Oracle
  • Find All internal Parameters Oracle
  • 276434.1 Modifying the VIP or VIP Hostname of a 10g or 11g Oracle Clusterware Node Oracle
  • True Session Wait Activity in Oracle 10g Verygood Oracle
  • Create type and Grant on it. Oracle
  • Disbaling DBA_SCHEDULER_JOBS Oracle
  • standard Monitoring – 1 Oracle
  • dbinv.sql Oracle
  • How to collect CPU usage on Linux using Shell script Linux/Unix
  • oracle 11g RAC on vmware Oracle
  • DBA_HIST_SQLSTAT contents Oracle
  • Removing Blank lines from file using grep Linux/Unix
  • Creating a Container Database using dbaascli Uncategorized
  • configUOCIOTTO.ora Oracle
  • Query to Generate aggregate on every 30 mins. Oracle

CPU Core related projections

Posted on 12-Mar-202512-Mar-2025 By Admin No Comments on CPU Core related projections

Rule of Thumb for Estimating Concurrent DB Connections on a 24-Core Machine (Single Thread Each)

The number of concurrent database connections a 24-core machine can handle depends on various factors, including:

  1. CPU-bound vs. I/O-bound workload:
    • If queries are CPU-intensive, fewer connections can be supported.
    • If queries are I/O-heavy (waiting for disk/network), more connections can be supported.
  2. Database Engine and Configuration:
    • Oracle, PostgreSQL, MySQL, etc., handle concurrency differently.
    • Connection pooling and caching can impact the actual limit.
  3. Operating System and Memory Availability:
    • Context switching overhead increases with more connections.
    • Sufficient RAM is needed to avoid excessive swapping.

Hypothetical Calculation Based on CPU

A single-threaded, single-core system can typically handle 2-10 concurrent active queries (depending on execution time and parallelism). For a 24-core machine, we estimate:

1. If CPU is the Primary Bottleneck (CPU-Bound Workloads)

  • A general rule of thumb is 10 active connections per core.
  • For 24 cores: 24×10=240 active queries24 \times 10 = 240 \text{ active queries}
  • Beyond this, performance degrades due to CPU contention.

2. If the Workload is I/O-Bound (Queries Waiting for I/O)

  • More connections can be supported because many queries wait for disk or network.
  • Rule of thumb: 50-100 connections per core.
  • For 24 cores: 24×50=1,200 connections (moderate load)24 \times 50 = 1,200 \text{ connections (moderate load)} 24×100=2,400 connections (light workload)24 \times 100 = 2,400 \text{ connections (light workload)}

3. If Connection Pooling is Used

  • With a connection pool, inactive connections reuse the same thread, reducing load.
  • Typical connection pooling ratios:
    • 4-5x the number of cores for CPU-heavy loads → 96-120 connections.
    • 10-20x the number of cores for I/O-heavy loads → 240-480 connections.

Practical Estimation (Hypothetical)

Workload TypePer Core Estimate24-Core Estimate
CPU-Bound Queries~10 active queries~240 active connections
I/O-Bound Queries~50-100 connections~1,200 – 2,400 connections
With Connection Pooling~4-20x cores~96 – 480 connections

Conclusion

  1. For CPU-heavy applications → ~240 active connections.
  2. For mixed workloads (balanced CPU & I/O) → ~1,200 connections.
  3. For I/O-heavy workloads (many idle/waiting queries) → ~2,400 connections.
  4. With connection pooling → Effective limit increases (~480 connections).

Best Practices

  • Use connection pooling (pgbouncer for PostgreSQL, Oracle DRCP, HikariCP for Java).
  • Optimize queries to reduce long-running transactions.
  • Monitor CPU and wait states (top, vmstat, iostat in Linux).
  • Tune database parameters like PROCESSES (Oracle), max_connections (PostgreSQL), or thread_cache_size (MySQL).

Let me know if you need database-specific recommendations! 🚀

AWS, Azure, Linux/Unix, Oracle

Post navigation

Previous Post: Exadata Basics
Next Post: JSON/XML Types in Oracle

Related Posts

  • Pending Transaction Neighbors Script Oracle
  • switchover for primary database Oracle
  • Processes Parameter decision Oracle
  • refre.sql Oracle
  • fkwoindex.sql /* Find FK without Index */ Oracle
  • 284785.1 How to check RAC Option is currently linked into the Oracle Binary Oracle

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Categories

  • Ansible (0)
  • AWS (2)
  • Azure (1)
  • Django (0)
  • GIT (1)
  • Linux/Unix (149)
  • MYSQL (5)
  • Oracle (403)
  • PHP/MYSQL/Wordpress (10)
  • POSTGRESQL (1)
  • Power-BI (0)
  • Python/PySpark (7)
  • RAC (18)
  • rman-dataguard (26)
  • shell (150)
  • SQL scripts (350)
  • SQL Server (6)
  • Uncategorized (5)
  • Videos (0)

Recent Posts

  • Key Management in Oracle: The Core Issue: Missing Master Key12-May-2026
  • SAT Mathematics 10 questions and answer at the end.30-Apr-2026
  • top 10 AI news today30-Apr-2026
  • runon_allpdbs_show_conname.sh23-Apr-2026
  • runon_allcdbs_find_pdbs.sql23-Apr-2026
  • Running PDB on single node in RAC09-Apr-2026
  • find_arc.sql09-Apr-2026
  • pvm_pre_change.sql08-Apr-2026
  • find_encr_wallet.sql08-Apr-2026
  • find_pdbs.sql08-Apr-2026

Archives

  • 2026
  • 2025
  • 2024
  • 2023
  • 2010
  • 2009
  • 2008
  • 2007
  • 2006
  • 2005
  • Backup and Recovery Scenarios Oracle
  • checking connectivity between two servers Linux/Unix
  • Checking SQL Server Version SQL Server
  • kill all processes from specific user in solaris. Linux/Unix
  • scripts to take listener.log backup Linux/Unix
  • remove archfiles only when it is applied to DR rm_archfiles.sh Linux/Unix
  • Temporary Tablespace Information and restriction. Oracle
  • scp with ssh2 Linux/Unix

Copyright © 2026 pvmehta.com.

Powered by PressBook News WordPress theme