DB 内からサーバーのリソース使用状況(CPU/IO)を表示
Oracle
SELECT stat_name, value FROM v$osstat
WHERE stat_name IN ('NUM_CPUS','BUSY_TIME','IDLE_TIME','IOWAIT_TIME','PHYSICAL_MEMORY_BYTES');
-- Real-time metrics: SELECT metric_name, value FROM v$sysmetric WHERE group_id = 2;v$osstat は OS の CPU/メモリカウンタを、v$sysmetric は直近の間隔のリアルタイム DB メトリクス(CPU、IOPS)を提供する。
PostgreSQL
SELECT backend_type, object, context, reads, writes, hits, evictions
FROM pg_stat_io
ORDER BY reads DESC;
-- Note: CPU usage is not visible from inside the DB; an OS tool (top, sar) is required.pg_stat_io は読み取り/書き込み/キャッシュヒットのカウンタを提供する。PostgreSQL は CPU 使用率を公開しないため、OS のツールが必要。
MySQL
SELECT * FROM sys.host_summary;
-- For InnoDB I/O and thread details:
SHOW ENGINE INNODB STATUS\Gsys スキーマのサマリービュー(host_summary)は IO/レイテンシの内訳を示す。SHOW ENGINE INNODB STATUS はバッファプールと IO のアクティビティを示す。
SQL Server
SELECT object_name, counter_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name LIKE '%CPU%' OR counter_name LIKE '%Page life expectancy%';
-- CPU history: sys.dm_os_ring_buffers (RING_BUFFER_SCHEDULER_MONITOR)sys.dm_os_performance_counters は DB のパフォーマンスカウンタを、dm_os_ring_buffers は直近約 256 分間の SQL/その他プロセスの CPU 比率を提供する。
MongoDB
db.serverStatus().metrics
// Relevant fields: .opcounters, .network, .wiredTiger.cache, .mem, .extra_info.page_faultsserverStatus() はメモリ、ネットワーク、opcounters、WiredTiger キャッシュのメトリクスを提供する。OS の詳細な CPU/IO には mongostat または OS のツールを使用する。
Redis
INFO cpu
INFO stats
# used_cpu_sys, used_cpu_user, instantaneous_ops_per_sec, total_net_input_bytesINFO cpu は Redis プロセスの CPU 消費を、INFO stats は毎秒の操作数とネットワークトラフィックを報告する。
Elasticsearch
GET _nodes/stats/os,process
// Look at the os.cpu.percent, os.mem, process.cpu.percent, fs (disk) fields_nodes/stats/os,process はノードごとの CPU 使用率、メモリ、プロセスのメトリクスを提供する。ディスクには fs セクションを使用する。