您好,登錄后才能下訂單哦!
本篇內容主要講解“Postgresql性能相關操作系統及數據庫說明”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Postgresql性能相關操作系統及數據庫說明”吧!
--pg 性能調整相關 --內存 buffer cache 直接對磁盤進行操作的數據會緩存到buffer cache page cache 文件系統中的數據則交給page cache進行緩存 --cache不自動回收,數據庫需要內存時,cache可以很快被回收,如果沒用到交換分區,可說明內存夠用 -釋放緩存 sync echo 1 > /proc/sys/vm/drop_caches --vmstat 虛擬內存、進程、cpu等整體情況 -r 當前隊列中有幾個進程在等待 -b 當前有多少個進程進入不可中斷式睡眠狀態 -swpd 已使用的交換分區的大小 -free 空閑內存大小 -buff 已使用的buffer大小 --cache 已使用的page cache大小 -si/so 從磁盤交換到swap分區和從swap分區交換的磁盤大小 -bi/bo 從磁盤讀取和寫入到磁盤的大小,單位blocks/s -in 每秒被中斷的進程數 -cs 每秒多少個cpu進程在進進出出 --iostat 監控磁盤輸入輸出 --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 調度 ##查看當前支持的調度算法 dmesg | grep -i scheduler --cfg 絕對公平調度算法 ,默認 --noop 電梯調度算法 適合ssd --deadline 絕對保障算法 --查看當前磁盤sda的io調度算法 cat /sys/block/sda/queue/scheduler --臨時修改 echo noop > /sys/block/sda/queue/scheduler ##磁盤預讀扇區 /sbin/blockdev --getra /dev/sda #默認256,可設置16384或更大 /sbin/blockdev --setra 16384 /dev/sda #或 echo 16384 /sys/block/sda/queue/read_ahead_kb ##禁用swap swapoff -a ##啟用 swapon -a --透明大頁,要關閉 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禁用 ##數據庫方面 --統計信息 pg_stat_database --緩存命中率,如果低于1,可嘗試調整shared_buffers select blks_hit::float/(blks_read + blks_hit) as cache_hit_ratio from pg_stat_database where datname=current_database(); --事務提交率,低于1,檢查是否死鎖或其他超時太多 select xact_commit::float/(xact_commit +xact_rollback) as successful_xact_ratio from pg_stat_database where datname=current_database(); --優化后建議執行以下語句,方面對比優化前后數據 pg_stat_reset() --表級統計信息 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; --語句級統計信息 通過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; --查詢平均執行時間最長的3條查詢 select calls,total_time/calls as avg_time,left(query,80) from pg_stat_statements order by 2 desc limit 3; --查看執行計劃 analyze可以得到真正執行計劃 explain analyze select * from tb1; --除了analyze選項,可以使用其他 explain (analyze on ,timing on,verbose on,buffers on) select * from tb1; --session 級別 log_xxx_stat判斷問題,使用的系統資源等, 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'); --開啟事務刪除主機索引,同時將第二索引更新為主鍵約束 begin; alter table mytb1 drop constraint mytb1_pkey; alter table mytb1 add constraint mytb1_id_idx primary key using index mytb1_id_idx; end; --對于大規模,可通過pg_repack工具進行定時索引重建
到此,相信大家對“Postgresql性能相關操作系統及數據庫說明”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。