网站首页 > 技术教程 正文
记录数据库的cpu使用、IO、内存等使用情况,使用vmstat,iostat,sar,top等命令进行信息收集并检查这些信息,判断资源使用情况。
1. CPU使用情况:
top命令
top命令通常是关注CPU和IO等待情况,top -p pid ,后在按H,可以查看该进程ID的线程情况或说子进程情况,如
2.内存使用情况:
命令:free-m
# free -m 
              total        used        free      shared  buff/cache   available
Mem:          32010       13470        1040          19       17500       18012
Swap:          2047         124        1923
total:内存总数
used:已经使用的内存数
free:空闲的内存数
shared:共享内存大小,主要用于进程间通信
buffers:主要用于块设备数据缓冲
cached:主要用于文件内容缓冲
- buffers/cached = used(第一行)- buffers - cached程序当前"真实使用"的"物理内存"的大小。
+ buffers/cached = buffers + cached实际缓存大小
实际剩余内存=free+buffers+cached
3.系统IO情况:iostat,vmstat
 yum install sysstat -y    //iostat 命令安装
 yum -y install procps-ng  //vmstat 命令安装# vmstat 3 5 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 127744 1083724 445540 17475104    0    0     1    27    0    1  1  0 98  0  0
 0  0 127744 1083616 445540 17475136    0    0     0   193 1459 2203  0  0 100  0  0
 0  0 127744 1085536 445540 17475148    0    0     0  1367 3085 4635  2  0 98  0  0
 0  0 127744 1085304 445540 17475172    0    0     0   297 1506 2111  0  0 99  0  0
 0  0 127744 1085368 445540 17475192    0    0     0   291 1407 2030  1  0 99  0  0#  iostat -k 1 3
Linux 3.10.0-957.el7.x86_64 (qpl-fanwei-oa) 	05/26/2022 	_x86_64_	(16 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.32    0.00    0.33    0.03    0.00   98.32
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.06         0.95        15.69    3266129   54081900
sdb              28.79         8.79       414.45   30289153 1428115592
scd0              0.00         0.00         0.00       1028          0
dm-0              2.07         0.91        15.65    3119290   53911376
dm-1              0.01         0.01         0.05      21240     166196
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.02    0.00    1.13    0.00    0.00   90.86
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               5.00         0.00        20.00          0         20
sdb              45.00         0.00       440.00          0        440
scd0              0.00         0.00         0.00          0          0
dm-0              5.00         0.00        20.00          0         20
dm-1              0.00         0.00         0.00          0          0
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.19    0.00    0.44    0.00    0.00   97.37
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.00         0.00         4.00          0          4
sdb              18.00         0.00       248.00          0        248
scd0              0.00         0.00         0.00          0          0
dm-0              1.00         0.00         4.00          0          4
dm-1              0.00         0.00         0.00          0          04.系统负载情况
# uptime
 12:38:02 up 39 days, 21:14,  2 users,  load average: 0.04, 0.03, 0.05uptime 命令可以用来查看服务器已经运行了多久,当前登录的用户有多少,以及服务器在过去的1分钟、5分钟、15分钟的系统平均负载值。
那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
5.查看是否有僵死进程
select spid from v$process where addr not in (select paddr from v$session); 6.检查缓冲区命中率
SELECT a.VALUE + b.VALUE logical_reads,
       c.VALUE phys_reads,
       round(100 * (1 - c.value / (a.value + b.value)), 4) hit_ratio
  FROM v$sysstat a, v$sysstat b, v$sysstat c
 WHERE a.NAME = 'db block gets'
   AND b.NAME = 'consistent gets'
   AND c.NAME = 'physical reads';
如果命中率低于90%则需加大数据库参数db_cache_size。
7.检查共享池命中率
select sum(pinhits) / sum(pins) * 100 from v$librarycache; 如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数shared pool的大小。
8.检查排序区
 select name,value from v$sysstat where name like '%sort%'; 如果disk/(memoty+row)的比例过高,则需要调整sort_area_size(workarea_size_policy=false)或pga_aggregate_target(workarea_size_policy=true)。
9.检查日志缓冲区
select name,value from v$sysstat where name in ('redo entries','redo buffer allocation retries');如果redo buffer allocation retries/redo entries超过1%,则需要增大log_buffer。
猜你喜欢
- 2025-07-01 Oracle 在其新的 Linux 内核中引入了热补丁功能
 - 2025-07-01 CentOS 7.6下安装Oracle 11.2.0.4
 - 2025-07-01 ORACLE体系 - 2(oracle体系讲解)
 - 2025-07-01 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
 - 2025-07-01 Hadoop自学系列集(二) ---- CentOS下安装JDK
 - 2025-07-01 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
 - 2025-07-01 搭建Oracle数据库服务器(oracle服务器创建用户)
 - 2025-07-01 OGG同步到Kafka(oggforbigdata到kafka)
 - 2025-07-01 oracle是什么软件?(oracle是干什么用的)
 - 2025-07-01 脚本化修改Oracle用户的密码以及执行sql(增删改查等)
 
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
 - 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
 - 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
 - 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
 - 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
 - 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
 - 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
 - 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
 
- 最近发表
 - 
- Excel计算工龄和年份之差_excel算工龄的公式year
 - Excel YEARFRAC函数:时间的"年份比例尺"详解
 - 最常用的10个Excel函数,中文解读,动图演示,易学易用
 - EXCEL中如何计算截止到今日(两个时间中)的时间
 - 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
 - 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
 - Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
 - 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
 - Excel日期函数之DATEDIF函数_excel函数datedif在哪里
 - Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
 
 
- 标签列表
 - 
- 下划线是什么 (87)
 - 精美网站 (58)
 - qq登录界面 (90)
 - nginx 命令 (82)
 - nginx .http (73)
 - nginx lua (70)
 - nginx 重定向 (68)
 - Nginx超时 (65)
 - nginx 监控 (57)
 - odbc (59)
 - rar密码破解工具 (62)
 - annotation (71)
 - 红黑树 (57)
 - 智力题 (62)
 - php空间申请 (61)
 - 按键精灵 注册码 (69)
 - 软件测试报告 (59)
 - ntcreatefile (64)
 - 闪动文字 (56)
 - guid (66)
 - abap (63)
 - mpeg 2 (65)
 - column (63)
 - dreamweaver教程 (57)
 - excel行列转换 (56)
 
 

本文暂时没有评论,来添加一个吧(●'◡'●)