本文主要讲解“Postgresql性能相关操作系统和数据库的描述”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“Postgresql性能相关的操作系统和数据库描述”!
-与- pg性能调整相关
记忆
buffercache在磁盘上直接操作的数据将缓存在buffercache中。
页面缓存文件系统中的数据被移交给页面缓存进行缓存。
-缓存不会自动回收。当数据库需要内存时,缓存可以快速回收。如果不使用交换分区,则内存足够。
-释放缓存
同步
echo 1/proc/sys/VM/drop _ cache
- vmstat虚拟内存、进程、cpu等的总体情况
-r当前队列中有几个进程正在等待。
-b当前有多少进程处于不间断睡眠状态?
-swpd使用的交换分区的大小
-空闲内存大小
-缓冲区使用的缓冲区大小
-缓存使用的页面缓存大小
-si/so从磁盘交换到交换分区和交换分区的磁盘大小。
-从磁盘读取和写入磁盘的bi/bo大小,以块/秒为单位。
-以每秒中断的进程数为单位
-每秒有多少cpu进程进出CS?
- iostat监控磁盘输入和输出。
- mpstatcpu详细性能信息
- sar默认保存28天,目录/var/log/sa修改/etc/sysconfig/sysstat。
-检查某个时间段。
sar-q-f/var/log/sa/sa15-s 2:00:00-e 23:00:00
Sar-q#总结了cpu状态
Sar-b#汇总io状态
-Linuxi/o调度
# #查看当前支持的调度算法。
dmesg | grep-ischaudier
- cfg绝对公平调度算法,默认
- noop电梯调度算法适用于ssd
-截止时间绝对保证算法
-检查当前磁盘sda的io调度算法
cat/sys/block/sda/队列/调度程序
-临时修改
echnoop/sys/block/sda/queue/scheduler
# #磁盘预读扇区
/sbin/blockdev-getra/dev/sda #默认值为256,可以设置为16384或更高。
/sbin/block dev-setra 16384/dev/sda
#或者
echo 16384/sys/block/sda/queue/read _ ahead _ kb
# #禁用交换
swapoff-a
# #已启用
斯瓦蓬-a
-透明大页面,关闭。
cat/sys/kernel/mm/transparent _ hugepage/enabled
echo never/sys/kernel/mm/transparent _ hugepage/enabled
##numaguanbi
numac TL-硬件
表示“…人”
numastat
numa=off禁用的可编辑/etc/grub.conf行
# #数据库方面
-统计信息
pg _ stat _数据库
-缓存命中率,如果小于1,尝试调整shared_buffers。
selectblks _ hit : float/(blks _ read blks _ hit)as ache _ hit _ rati from pg _ stat _ databasewhere datname=current _ database();
-事务提交率,低于1,检查死锁或其他超时是否过多。
selectxact _ commit : float/(xact _ commit xact _ roll back)as accessful _ xact _ ratio from pg _ stat _ database where datname=current _ database();
-建议优化后执行以下语句,对比优化前后的数据。
pg_stat_reset()
-表级统计
pg_stat_user_tables
-指数利用率
selectsum(idx _ scan)/(sum(idx _ scan)sum(seq _ scan))asidx _ scan _ ratio fropg _ stat _ all _ tableshathyschemaname=' your _ schema ';
selectrelname,idx _ scan : float/(idx _ scan seq _ scan 1)asidx _ scan _ rati fromstat _ all _ table where schema name=' yourschema ' order by idx _ scan _ rati ASC;
-语句级统计数据通过pg _ stat _ statements语句、postgres日志和auto_explain获得。
pg _ stat _语句
-打开
shared _ preload _ libraries=' pg _ stat _ States '
pg_stat_statements.track=all
createextensionpg _ stat _语句;
-平均执行时间最长的三个查询。
selectcalls,total _ time/callsashavg _ time,left(query,80)fropg _ stat _ statementsorderby 2 descrimit3;
-检查执行计划分析以获得真正的执行计划。
解释分析选择* fromtb1
-除了分析选项,还可以使用其他选项。
解释(analyzeon、timingon、verboseon、bufferson)选择* fromtb1
-会话级log_xxx_stat判断问题、使用的系统资源等。
setclient _ min _ messages=log
setlog _ parser _ stats=on
setlog _ planner _ stats=on
表示“…人”
setclient _ min _ messages=log
setlog _ parser _ stats=off
setlog _ planner _ stats=off
setlog _ statement _ stats=on
-重建索引
createuniqueindexconcurrentlyonmytb1 using btree(id);
- id字段有两个索引
selectschemaname,relname,indexrelanme,pg _ relation _ size(index relid)as index _ size,idx_scan,idx_tup_read,idx _ tup _ fetchfropg _ stat _ user _ indexeswhere indexrelnamein(selectindexnamefropg _ indexeswhere schemaname=' public '和tablename=' mytb1 ');
-启动事务以删除主机索引,并将第二个索引更新为主键约束。
开始;
alteretablemytb1 droconstraintmytb1 _ pkey;
alteretablemytb1 addconstraintmytb1 _ id _ idxprimarykeyingindexmytb1 _ id _ idx;
结束;
-对于大规模,我们可以通过pg_repack工具定期重建索引。相信大家对“Postgresql性能相关的操作系统和数据库描述”都有了更深的理解,让我们一起来实践吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/77894.html