Skip to content
pvmehta.com

pvmehta.com

  • Home
  • About Me
  • Toggle search form
  • How to Modify the statistics collection by MMON for AWR repository Oracle
  • How To Limit The Access To The Database So That Only One User Per Schema Are Connected (One Concurrent User Per Schema) Oracle
  • eplan.sql Oracle
  • prepfiles.sh for step by step generating pending statistics files Oracle
  • All Hints for Oracle Databases Oracle
  • load SPM baseline from cursor cache Oracle
  • True Session Wait Activity in Oracle 10g Verygood Oracle
  • get_ratio.sql get the ratio of users from v$session and this uses CASE-WHEN-THEN clause Oracle
  • find_du.ksh to find # of files, their sizes in current folder and its subdolder Linux/Unix
  • find_pk.sql /* Find Primary Key */ Oracle
  • Oracle10g – Using SQLAccess Advisor (DBMS_ADVISOR) with the Automatic Workload Repository Oracle
  • Wait time tuning research Oracle
  • tracksqltime.sql Oracle
  • Vivek Tuning for Row Locks. Oracle
  • Global Unique Identifier Generation in Oracle 9.2 SYS_GUID() 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

  • sesswait.sql Oracle
  • Proc Compilation Oracle
  • Changing the Global Database Name Oracle
  • Histogram Overview Oracle
  • checking connectivity between two servers Linux/Unix
  • prepfiles.sh for step by step generating pending statistics files 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 (150)
  • MYSQL (5)
  • Oracle (403)
  • PHP/MYSQL/Wordpress (10)
  • POSTGRESQL (1)
  • Power-BI (0)
  • Python/PySpark (7)
  • RAC (18)
  • rman-dataguard (26)
  • shell (151)
  • SQL scripts (349)
  • 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.sh23-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
  • Wait.sql Oracle
  • ORA-4031 issue and solution on 09-MAY-2008 Oracle
  • Running select from V$ views from remote server Linux/Unix
  • Jai Shree Ram Linux/Unix
  • Oracle Recommended Patches — Oracle Database ID 756671.1 Oracle
  • Small sample shell program Linux/Unix
  • Sort with ASCII order and Numeric Order Linux/Unix
  • 272332.1 CRS 10g Diagnostic Collection Guide Oracle

Copyright © 2026 pvmehta.com.

Powered by PressBook News WordPress theme