溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Postgresql性能相關(guān)操作系統(tǒng)及數(shù)據(jù)庫說明

發(fā)布時間:2021-11-09 16:35:33 來源:億速云 閱讀:263 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

本篇內(nèi)容主要講解“Postgresql性能相關(guān)操作系統(tǒng)及數(shù)據(jù)庫說明”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Postgresql性能相關(guān)操作系統(tǒng)及數(shù)據(jù)庫說明”吧!

--pg 性能調(diào)整相關(guān)
--內(nèi)存
buffer cache 直接對磁盤進行操作的數(shù)據(jù)會緩存到buffer cache
page cache   文件系統(tǒng)中的數(shù)據(jù)則交給page cache進行緩存
--cache不自動回收,數(shù)據(jù)庫需要內(nèi)存時,cache可以很快被回收,如果沒用到交換分區(qū),可說明內(nèi)存夠用
-釋放緩存
sync
echo 1 > /proc/sys/vm/drop_caches
--vmstat  虛擬內(nèi)存、進程、cpu等整體情況
-r 當前隊列中有幾個進程在等待
-b  當前有多少個進程進入不可中斷式睡眠狀態(tài)
-swpd  已使用的交換分區(qū)的大小
-free  空閑內(nèi)存大小
-buff 已使用的buffer大小
--cache 已使用的page cache大小
-si/so 從磁盤交換到swap分區(qū)和從swap分區(qū)交換的磁盤大小
-bi/bo 從磁盤讀取和寫入到磁盤的大小,單位blocks/s
-in 每秒被中斷的進程數(shù)
-cs 每秒多少個cpu進程在進進出出
--iostat  監(jiān)控磁盤輸入輸出
--mpstat cpu詳細性能信息
--sar  默認保存28天,目錄 /var/log/sa   修改 /etc/sysconfig/sysstat
--查看某一時間段
sar -q -f /var/log/sa/sa15 -s 22:00:00 -e 23:00:00
sar -q  #匯總cpu狀況
sar -b  #匯總io狀況
--linux I/O 調(diào)度
##查看當前支持的調(diào)度算法
dmesg | grep -i scheduler
--cfg 絕對公平調(diào)度算法 ,默認
--noop 電梯調(diào)度算法  適合ssd
--deadline  絕對保障算法 
--查看當前磁盤sda的io調(diào)度算法
cat /sys/block/sda/queue/scheduler
--臨時修改
echo noop > /sys/block/sda/queue/scheduler
##磁盤預(yù)讀扇區(qū)
/sbin/blockdev --getra /dev/sda  #默認256,可設(shè)置16384或更大
/sbin/blockdev --setra 16384 /dev/sda
#或
echo 16384 /sys/block/sda/queue/read_ahead_kb
##禁用swap
swapoff -a 
##啟用
swapon -a
--透明大頁,要關(guān)閉
cat /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
##numa guanbi 
numactl -hardware
--or
numastat
#可編輯 /etc/grub.conf 行末加numa=off禁用
##數(shù)據(jù)庫方面
--統(tǒng)計信息
pg_stat_database
--緩存命中率,如果低于1,可嘗試調(diào)整shared_buffers
select blks_hit::float/(blks_read + blks_hit) as cache_hit_ratio from pg_stat_database where datname=current_database();
--事務(wù)提交率,低于1,檢查是否死鎖或其他超時太多
select xact_commit::float/(xact_commit +xact_rollback) as successful_xact_ratio from pg_stat_database where datname=current_database();
--優(yōu)化后建議執(zhí)行以下語句,方面對比優(yōu)化前后數(shù)據(jù)
pg_stat_reset()
--表級統(tǒng)計信息
pg_stat_user_tables
--索引使用率
select sum(idx_scan)/(sum(idx_scan) + sum(seq_scan)) as idx_scan_ratio from pg_stat_all_tables where schemaname='your_schema';
select relname,idx_scan::float/(idx_scan+seq_scan+1) as idx_scan_ratio from stat_all_tables where schemaname='your schema' order by idx_scan_ratio asc;
--語句級統(tǒng)計信息 通過pg_stat_statements ,postgres 日志、auto_explain 來獲取
pg_stat_statements
--開啟
shared_preload_libraries='pg_stat_statements'
pg_stat_statements.track=all 
create extension pg_stat_statements;
--查詢平均執(zhí)行時間最長的3條查詢
select calls,total_time/calls as avg_time,left(query,80) from pg_stat_statements order by 2 desc limit 3;
--查看執(zhí)行計劃 analyze可以得到真正執(zhí)行計劃
explain analyze select * from tb1;
--除了analyze選項,可以使用其他
explain (analyze on ,timing on,verbose on,buffers on) select * from tb1;
--session 級別 log_xxx_stat判斷問題,使用的系統(tǒng)資源等,
set client_min_messages=log;
set log_parser_stats=on;
set log_planner_stats=on;
--or
set client_min_messages=log;
set log_parser_stats=off;
set log_planner_stats=off;
set log_statement_stats=on;
--重建索引
create unique index concurrently on mytb1 using btree(id);
--id 字段有兩索引
select schemaname,relname,indexrelanme,pg_relation_size(indexrelid) as index_size,idx_scan,idx_tup_read,idx_tup_fetch from pg_stat_user_indexes where indexrelname in (select indexname from pg_indexes where schemaname='public' and tablename='mytb1');
--開啟事務(wù)刪除主機索引,同時將第二索引更新為主鍵約束
begin;
alter table mytb1 drop constraint mytb1_pkey;
alter table mytb1 add constraint mytb1_id_idx primary key using index mytb1_id_idx;
end;
--對于大規(guī)模,可通過pg_repack工具進行定時索引重建

到此,相信大家對“Postgresql性能相關(guān)操作系統(tǒng)及數(shù)據(jù)庫說明”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI