SinoDB数据库运行分析
SinoDB数据库运行主要从数据库互斥资源等待、数据库写类型、备份文件有效性、Chunk状态等15个方向进行分析,具体说明如下:
一、数据库互斥资源等待
-
检查项目
数据库互斥资源等待 -
检查命令
onstat -g con |head -20 -
说明
onstat -g con 查看目前数据处于等待条件中的线程信息
查看这两项资源等待项目,判断数据库是否存在资源配置上的性能瓶颈
二、数据库写类型
-
检查项目
数据库写类型 -
检查命令
onstat -F |head -
说明
Fg Writes ,LRU Writes,Chunk Writes分别代表了Buffer不足时清仓的数量,检查点来临前由LRU控制的清仓数量以及检查点触发时的清仓数量
三、备份有效性检测
-
检查项目
检查备份文件有效性 -
检查命令
onstat -g arc -
说明
确认各个DBSPACE包含有效的备份可供恢复使用
四、Chunk状态检查
-
检查项目
Chunk状态 -
检查命令
onstat -d | grep PD- -
说明
如果chunk块的FLAG标识出现PD-状态,表示该chunk设备已经脱机
五、检查系统关键区信息
-
检查项目
检查系统关键区信息 -
检查命令
oncheck -cc
oncheck -cr -
说明
每个数据库包含它本身的系统目录,该目录包含关于数据库表、列、索引、视图、约束、存储过程和特权的信息。保留页是驻留在根数据库空间初始块开始处的页。这些页包含主数据库服务器开销信息。如果该命令检测到错误,请从存储空间备份执行数据恢复。
六、数据库实例概要信息
-
检查项目
数据库实例概要信息 -
检查命令
onstat -p -
说明
1.%cached 是读取共享内存相对于磁盘读取百分比。OLTP 系统应该在95%以上。它是在系统中缓冲区太少的指标。
- seqscans & isamtot - 如果seqscans 和isamtot之间的比例大于1%,我们可以看看是否索引(index)使用少,顺序扫描(seqscans)使用太多。
- lokwaits & lockreqs - 是用户线程必须在锁定表发出请求/页/行锁的次数。如果与lokwaits/lockreqs 比率太高,那么应用程序可能单线程(single-threading)。
- ovlock 是数据库服务器试图分配锁15次数以上。ovlock 字段表明IDS 在使用了最大数量的锁之后尝试过再使用锁的次数。如果该数字非零,那么您可能需要提高配置文件中LOCKS 参数的值。
- ovbuff 字段表明IDS 在使用了最大数量的缓冲区之后尝试过再使用缓冲区的次数。如果该数字很大,比如说超过100000,那么表示我们需要提高BUFFERS 参数,以便用户在需要从磁盘访问数据
时不必等待缓冲区。这会缩短响应时间,因而可以改善整体性能。我们还需要检查与LRU 有关的参数,将它们的值调整到较低的bufwait。 - commit & rollbk
是回滚(rollback)和提交(commit)两者的比例。如果比例过高1%,那么应用程序可能设计不正确。需要研究为什么有这么多回滚,并采取纠正措施。
七、检查点持续时间
-
检查项目
检查点持续时间 -
检查命令
tail -100000onstat -m | grep "Message Log File" | awk -F: '{print $2}'
| grep duration | grep -v “0 seconds” -
说明
检查点持续时间反映出了一定的数据库性能,如果出现持续的检查点时间超过20秒则需要引起关注,可通过设置LRU_MIN_DIRTY , LRU_MAX_DIRTY来缓解。
八、非连续物理分布的表
-
检查项目
非连续物理分布的表 -
检查命令
dbaccess [DBNAME] <<EOF
select dbinfo(‘DBNAME’) dbname,t.tabname tabname,dbinfo(‘DBSPACE’,t.partnum) dbspace,count() extent_num, max(p.nrows) rows
from sysmaster:sysptnext e, systables t,sysmaster:sysptnhdr p
where e.pe_partnum=t.partnum
and t.partnum=p.partnum
and t.tabid>99
and t.tabname not like “sys%”
and t.tabname not like “tmp%”
group by 1,2,3
having count()>100
order by 4 desc
EOF -
说明
如果除了大型分段表以外,表的扩展块超过了100个,那么应该考虑重新构建这些表以合并扩展块。通过指定表的extent size 和nextsize调整重建表来减少extent数量。同时我们还需要根据表的记录数
来判断表的extent设置的问题。
九、全表扫描最多的表
-
检查项目
全表扫描最多的表 -
检查命令
select p.dbsname, t.tabname,
sum(p.seqscans) seqscans , max(t.nrows) nrows
from sysmaster:sysptprof p, systables t
where p.tabname =t.tabname
and t.nrows > 10000 and p.seqscans>10
and p.dbsname not like “sys%” and p.tabname not like “sys%” and p.tabname not like “tmp%”
group by 1,2
order by 3 desc; -
说明
对于大表的全表扫描操作会产生极高的开销,通过找出全表扫描最多的大表,并合理的建立相应的索引可以有效的避免额外的开销
十、DUMP目录检查
-
检查项目
DUMP目录空间及文件检查 -
检查命令
1.df -h $DUMPDIR
2.ls -lrt $DUMPDIR|egrep ‘.af|.dmp|core’ -
说明
定期检查DUMPDIR剩余空间确保其在故障时可以产生完整的AF文件供诊断使用
十一、IO最多的表
-
检查项目
各个表上IO情况 -
检查命令
select a.dbsname, a.tabname,
(isreads + pagreads) diskreads,
(iswrites + pagwrites) diskwrites,
(isreads + pagreads)+(iswrites + pagwrites) disk_rsws
from sysptprof a,systabnames b
where a.partnum=b.partnum
and a.tabname != ‘TBLSpace’
and a.tabname not like ’ %’
and a.tabname not like ‘sys%’
and a.dbsname not like ‘sys%’
and isreads + pagreads + iswrites + pagwrites >50000
order by 5 desc; -
说明
根据表的繁忙程度可以帮我们找出最需要进行关注的表,如果该部分表很大,则需要考虑对其进行分区操作,此外该信息可以帮助我们更为合理的规划磁盘IO
十二、效率低下的索引
-
检查项目
索引层超过4层的表 -
检查命令
dbaccess [DBNAME] <<EOF
select t.tabname,i.idxname, i.levels
from sysindexesi,systables t
where i.tabid = t.tabid
and i.levels>=4
order by 3 desc
EOF -
说明
层数在3层以上的索引性能将会严重降低,需考虑重建
十三、磁盘排序情况
-
检查项目
查看系统磁盘排序情况 -
检查命令
dbaccess sysmaster <<EOF
Select *
from sysprofile
where name matches “sort” -
说明
磁盘排序在性能上远低于内存排序,当内存排序空间不足时数据库则会使用磁盘进行排序,如果系统存在大量的磁盘排序,则应当考虑是否需要增加临时空间
十四、rootdbs上非系统表
-
检查项目
找出Rootdbs上非系统表 -
检查命令
dbaccess sysmaster <> $chkFile
select distinct t.dbsname database,d.name dbspace,t.tabname
from sysdbstab d,syschunks c,sysextents t
where t.chunk=c.chknum
and c.dbsnum=d.dbsnum
and t.dbsname not like ‘sys%’
and t.dbsname != ‘onpload’
and t.tabname not like ‘sys%’
and d.name = ‘rootdbs’
EOF -
说明
rootdbs中本身包含所有的系统表,如果附加业务表于其上则会产生IO和空间上的多种争用,如发现Rootdbs中存在业务表,则应考虑将其迁出至相应业务数据DBSPACE上
十五、表空间使用过高的表清单
-
检查项目
找出系统内空间使用过高的表 -
检查命令
set isolation to dirty read;
select s.dbsname,s.tabname, p.npused from sysptnhdr p,systabnames s
where p.partnum = s.partnum
and p.npused >10000000 ; -
说明
2k page Size数据库内若单一个partition 使用超过16775134 pages ,则该表会导致无法在新增数据的问题。若有该状况建议:
1、将该表移至大Page Size的表空间
2、将该表进行表分区或表分片。
更多信息内容请移步星瑞格官方社区,期待大家加入
Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.https://forum.sinoregal.cn/
相关文章:
SinoDB数据库运行分析
SinoDB数据库运行主要从数据库互斥资源等待、数据库写类型、备份文件有效性、Chunk状态等15个方向进行分析,具体说明如下: 一、数据库互斥资源等待 检查项目 数据库互斥资源等待 检查命令 onstat -g con |head -20 说明 onstat -g con 查看目前数据处…...
OkHttp
文章目录 OkHttp概要1.简介2.特点3.基本组成5.工作流程 拦截器1.简介2.内置拦截器3.自定义拦截器 连接池1.简介2.常用参数配置选项 Dispatcher和线程池1.简介2.重要方法3.DispatCher中的双端队列4.总结 OkHttp 概要 1.简介 OkHttp是一个开源的HTTP客户端,用于在J…...
uni-app 上传图片无反应 chooseImage失效
1、点击反应都没有 2、输出fail 信息 {"errMsg": "chooseImage:fail api scope is not declared in the privacy agreement", "errno": 112} 提示: 这个是小程序需要更新用户隐私策略 在小程序 微信公众平台 : 设置-&…...
学习Java十一天总结
目录 一、走进Java编程世界 二、变量、常量和运算符 三、if选择结构 四、switch选择结构 五、while循环结构 六、for循环结构 七、数组 八、深度循环结构 九、类和对象 十、类的无参方法 十一、类的带参方法 十二、字符串 一、走进Java编程世界 程序是为了让计算机…...
【光伏监控系统的相关产品有哪些】Acrel-1000DP分布式光伏监控系统
光伏发电系统是指无需通过热过程直接将光能转变为电能的发电系统。通常由光伏方阵、蓄电池组(蓄电池控制器)、逆变器、交流配电柜和太阳跟踪控制系统等设备组成。其特点是可靠性高、使用寿命长、不污染环境、能独立发电又能并网运行。 分布式光伏监控系…...
[Linux]互斥锁(什么是锁,为什么需要锁,怎么使用锁(接口),演示代码)
目录 一、锁的概念 一些需要了解的概念 什么是锁?为什么需要锁?什么时候使用锁?怎么定义锁? 二、锁的接口 1.初始化锁 2.加锁 3.申请锁 4.解锁 5.销毁锁 三、实践(写代码):黄牛抢票 M…...
Web基础06-AJAX,Axios,JSON数据
目录 一、AJAX 1.概述 2.主要作用 3.快速入门 4.AJAX的优缺点 (1)优点 (2)缺点 5.同源策略 二、Axios 1.概述 2.快速入门 3.请求方式别名 三、JSON 1.概述 2.主要作用 3.基础语法 4.JSON数据转换 (1…...
Java 文件序列化和反序列化
list序列化 /*** 序列化* param list* param filename* throws IOException*/public static void serializeList(List<Map<String, Object>> list, String filename) throws IOException {try (ObjectOutputStream oos new ObjectOutputStream(new FileOutputStre…...
NETLINK_ROUTE 与 NETLINK_SOCK_DIAG 的区别与用法
在 Linux 中,Netlink 是一种用于内核与用户空间之间通信的机制,通过不同的 Netlink 协议族(family)可以实现不同类型的通信。其中,NETLINK_ROUTE 和 NETLINK_SOCK_DIAG 是两种常用的 Netlink 协议族,它们具…...
docker yocto vscode
scode的docker插件怎么使用 vscode是一个基于VS Code的开发环境,它提供了一个Docker插件,可以帮助你在VS Code中使用Docker进行开发。下面是使用scode的Docker插件的步骤: 安装scode插件:在VS Code的扩展商店中搜索并安装scode插…...
使用ansible剧本进行lvm分盘
使用 Ansible 剧本(Playbook)进行 LVM 分区管理是一种自动化的方式,可以帮助管理员在多台主机上批量管理逻辑卷。 部署环境 3台主机,添加硬盘 ansible-galaxy collection install community.general 联网执行,下…...
【排序】快速排序
原理 对于一个数组x,快速排序流程如下: 确定分界点a,可以取x[l]、x[r]、x[l r / 2]、随机(四种都可以)调整区间,使得:区间被分成 < a 和 > a的两部分,左边 < aÿ…...
Python大数据实践:selenium爬取京东评论数据
准备工作 selenium安装 Selenium是广泛使用的模拟浏览器运行的库,用于Web应用程序测试。 Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,并且支持大多数现代 Web 浏览器。 #终端pip安装 pip install selenium #清华镜像安装 p…...
信息系统项目管理师019:存储和数据库(2信息技术发展—2.1信息技术及其发展—2.1.3存储和数据库)
文章目录 2.1.3 存储和数据库1.存储技术2.数据结构模型3.常用数据库类型4.数据仓库 记忆要点总结 2.1.3 存储和数据库 1.存储技术 存储分类根据服务器类型分为:封闭系统的存储和开放系统的存储。封闭系统主要指大型机等服务器。开放系统指基于包括麒麟、欧拉、UNIX…...
Python基础(六)之数值类型元组
Python基础(六)之数值类型元组 1、简介 元组: 在Python中是内置的数据结构之一,是一个不可变的序列,切可以是任何类型数据。元组的元素放在()小括号内。一般我们希望数据不改变的时候使用 不可变与可变的…...
Chrome历史版本下载地址:Google Chrome Older Versions Download (Windows, Linux Mac)
最近升级到最新版本Chrome后发现页面居然显示错乱,是在无语, 打算退回原来的版本, 又发现官方只提供最新的版本下载, 为了解决这个问题所有收集了Chrome历史版本的下载地址分享给大家. Google Chrome Windows version 32-bit VersionSizeDate104.0.5112.10279.68 MB2022-05-30…...
ROS2纯跟踪实现(C++)
#include <tf2_ros/buffer.h> #include <tf2_ros/transform_broadcaster.h> #include <tf2_ros/transform_listener.h>#include <geometry_msgs/msg/transform_stamped.hpp> #include...
uniapp微信小程序随机生成canvas-id报错?
uniapp微信小程序随机生成canvas-id报错? 文章目录 uniapp微信小程序随机生成canvas-id报错?效果图遇到问题解决 场景: 子组件,在 mounted 绘制 canvas;App、H5端正常显示,微信小程序报错; 效…...
爬虫 Day2
resp.close()#关掉resp 一requests入门 (一) 用到的网页:豆瓣电影分类排行榜 - 喜剧片 import requestsurl "https://movie.douban.com/j/chart/top_list" #参数太长,重新封装参数 param {"type": "…...
达梦数据库SQL
达梦JSON函数技术文档 SQL中关键词处理 -- 必须要使用双引号包裹 select id,"comment" from t_cmp_rd_process;select id,"commit" from t_cmp_rd_gjj_eva;JSON_EXTRACT函数 -- party_sup_other_json 是包含JSON数据的列名。 -- $.content_abstract 是J…...
python教程——把视频转成gif
一、前言 很多网站提供视频转GIF的功能,但要么收费要么有广告,实际上可以通过python,几行代码就能够实现视频转gif。 二、使用方法 1安装必备库moviepy pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple 2. 写入代码 …...
深入浅出Go的`encoding/xml`库:实战开发指南
深入浅出Go的encoding/xml库:实战开发指南 引言基本概念XML简介Go语言中的XML处理结构体标签(Struct Tags) 解析XML数据使用xml.Unmarshal解析XML结构体标签详解处理常见解析问题 生成XML数据使用xml.Marshal生成XML使用xml.MarshalIndent优化…...
深度学习之扩散模型(Diffusion model)
代码解析:正向扩散过程和加噪演示 引言 这段代码实现了一个正向扩散过程和加噪演示的功能。通过生成一个特定形状的数据集,并在每个时间步长上应用正向扩散过程和加噪过程,最终展示了数据点在空间中的演变过程。 数据集生成 通过 make_swiss…...
Tomcat Session ID---会话保持
简单拓补图 一、负载均衡、反向代理 7-1nginx代理服务器配置 [rootdlnginx ~]#yum install epel-release.noarch -y ###安装额外源[rootdlnginx ~]#yum install nginx -y[rootdlnginx ~]#systemctl start nginx.service[rootdlnginx ~]#systemctl status nginx.service [ro…...
Session会话绑定
1.需求原因 用户的请求,登录的请求,经过负载均衡后落到后面的web服务器上,登录的状态/信息也会记录在web服务器上,就会导致不通的web服务器上,登录状态不统一,造成用户频繁需要登录 2.目标:如何实现会话保持/会话共享 方案一:登录状态写入cookie中.(wor…...
win7、win10、win11 系统能安装的.net framework 版本以
win7、win10、win11 系统能安装的.net framework 版本分别是多少?以及能安装的最高版本是多少? 以下是各Windows系统能够安装和支持的.NET Framework版本及其最高可安装版本的概述: Windows 7: 自带 .NET Framework 3.5.1&#x…...
RediSearch比Es搜索还快的搜索引擎
1、介绍 RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索…...
mybatis-plus 的saveBatch性能分析
Mybatis-Plus 的批量保存saveBatch 性能分析 目录 Mybatis-Plus 的批量保存saveBatch 性能分析背景批量保存的使用方案循环插入使用PreparedStatement 预编译优点:缺点: Mybatis-Plus 的saveBatchMybatis-Plus实现真正的批量插入自定义sql注入器定义通用…...
python异常:pythonIOError异常python打开文件异常
1.python读取不存在的文件时,抛出异常 通过 open()方法以读“r”的方式打开一个 abc.txt 的文件(该文件不存在),执行 open()打开一个不存在的文件时会抛 IOError 异常,通过 Python 所提供的 try...except...语句来接收…...
电话机器人语音识别用哪家更好精准度更高。
语音识别系统的选择取决于你的具体需求,包括但不限于识别精度、速度、易用性、价格等因素。以下是一些在语音识别领域表现较好的公司和产品: 科大讯飞:科大讯飞是中国最大的语音识别技术提供商之一,其语音识别技术被广泛应用于各…...
网站可以做匿名聊天吗/备案域名购买
搭建好Flutter环境,打apk包时一直报400错误: Could not GET xxx, Received status code 400 from server: Bad Request 网上搜索了好些解决方案,最后看了这篇文章解决了,这里记录一下 https://blog.csdn.net/lqx_sunhan/articl…...
wordpress移动端顶部导航/如何提升网站搜索排名
-- 锐捷"智能工厂方案"助力柳钢集团MES项目成功落地 在《中国制造2025》的战略指引下,我国的钢铁企业正在钢铁制造信息化、数字化与制造技术融合发展的进程中,迎来新的变革与发展。 在2016年工信部公布的两化融合管理体系贯标试点企业名单中&a…...
长春个人网站制作公司/宁波网站推广哪家公司好
1.3 消息监听器MessageListener在Spring整合JMS的应用中我们在定义消息监听器的时候一共可以定义三种类型的消息监听器,分别是MessageListener、SessionAwareMessageListener和MessageListenerAdapter。下面就分别来介绍一下这几种类型的区别。1.3.1 MessageListene…...
公司网站模板图片/展示型网站有哪些
目录 1、整个系列包含5个course 2、什么是神经网络? 3、深度学习中的有监督学习 4、深度学习为什么最近才迅速崛起?take off 5、course1的课程安排 6、问题和资源 7、采访Geoffrey Hinton 1、整个系列包含5个course (1)神经…...
营销网站做推广公司/搜狗推广管家
安装 一. Apache 安装 yum install -y httpd启动 /etc/init.d/httpd start备注:Apache启动之后会提示错误: 正在启动httpd:httpd: Could not reliably determine the server’s fully qualif domain name, using ::1 for ServerName解决办法:…...
傻瓜式在线做网站/晋江怎么交换友情链接
1.给管理员设置密码####################################################################################在命令行界面,关键字mysqladmin,password "密码" 要用引号引起来,因为密码的类型为char 字符型[rootlocalhost cd]# mysqladmin -ur…...