您好,登錄后才能下訂單哦!
本篇內(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ù)學習!
免責聲明:本站發(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)容。