未完笔记

Linux 记录

  • 更改时间命令:date -s “更改后的时间” hwclock -w
  • vmstat命令:vmstat delay count 虚拟内存统计工具,可以看每秒有多少个CPU进程在进出、当前CPU队列中有几个进程在等待。
  • iostat命令:iostat -dx delay count 监控磁盘的写入写出。
  • mpstat命令:mpstat delay count 返回CPU的详细性能信息。
  • sar命令: sar -q 汇总CPU状况,sar -b 汇总I/O状况,sar的历史数据保存在/var/log/sa目录下,在/etc/sysconfig/sysstat中修改留存期。
  • 系统的I/O调度算法:
    查看:cat /sys/block/sda/queue/scheduler 默认为cfq(公平调度算法)
    临时修改:将noop电梯调度算法修改为deadline绝对保障算法(重启服务器后失效)在这里插入图片描述
  • 调整预读参数:可通过调整内核预读磁盘扇区参数进行I/O优化
    查看:/sbin/blockdev --getra /dev/sda
    临时修改:/sbin/blockdev --setra 参数值 /dev/sda
  • 对数据库管理不友好:
    Swap :查看方法,free查看Swap是否使用
    关闭方法,swapoff -a
    透明大页:查看方法,cat /sys/kernel/mm/transparent_hugepage/enabled
    关闭方法,echo never > /sys/kernel/mm/transparent_hugepage/enabled
    NUMA:查看方法,numactl --hardware
    关闭方法,编辑/etc/grub.conf,在kernel行末加numa=off

PG记录

  • postgresql.conf参数配置
    shared_buffers:共享内存大小参数,建议设置大一些(默认的128MB太小,建议使用pgbench测试取一个合适的值)
    work_mem:每个服务进程进行排序或hash时可分配的最大内存(默认为4MB,查看查询计划,若发现使用了External merge排序方法,说明需要适当增加work_mem值)
  • 统计信息工具
    pg_stat_database
    用于计算缓存命中率:select blks_hit::float/(blks_read + blks_hit) as cache_hit_ratio from pg_stat_database where datname=current_database();
    结果说明:理论上应非常接近1,如果低于99%可考虑调大shared_buffers的值。
    用于计算事务提交率:select xact_commit::float/(xact_commit + xact_rollback) as successful_xact_ratio from pg_stat_database where datname=current_database();
    结果说明:理论上应非常接近1,否则检查是否要死锁。
    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=‘public’;
    select relname,idx_scan::float/(idx_scan+seq_scan+1) as idx_scan_ratio from pg_stat_all_tables where schemaname=‘public’ order by idx_scan_ratio asc;
    结果说明:索引使用率应尽可能接近1。
    pg_stat_statements
    postgresql.conf 文件中pa_stat_statements参数说明:
    shared_preload_libraries = ‘pg_stat_statements’,表示要在启动时导入pg_stat_statements 动态库。
    custom_variable_classes = ‘pg_stat_statements’,是为了其下面的几个配置项。
    pg_stat_statements.max = 1000,表示监控的语句最多为1000句。
    pg_stat_statements.track = top,表示不监控嵌套的sql语句。
    pg_stat_statements.track = all,表示监控所有语句。
    pg_stat_statements.track_utility = true,表示对 INSERT/UPDATE/DELETE/SELECT 之外的sql动作也作监控。
    pg_stat_statements.save = true,表示当postgresql止时,把信息存入磁盘文件以备下次启动时再使用。
    查询平均执行时间最长最长的n条记录:
    select calls,total_time/calls as avg_time,left(query,80) from pg_stat_statements order by 2 desc limit n;
    查询数据库中表大小:
    前10大的表(含索引):SELECT table_schema || ‘.’ || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size(’"’ || table_schema || ‘"."’ || table_name || ‘"’)) AS size
    FROM information_schema.tables
    ORDER BY
    pg_total_relation_size(’"’ || table_schema || ‘"."’ || table_name || ‘"’) DESC limit 10;
    分理数据和索引:
    SELECT
    table_name,
    pg_size_pretty(table_size) AS table_size,
    pg_size_pretty(indexes_size) AS indexes_size,
    pg_size_pretty(total_size) AS total_size
    FROM (
    SELECT
    table_name,
    pg_table_size(table_name) AS table_size,
    pg_indexes_size(table_name) AS indexes_size,
    pg_total_relation_size(table_name) AS total_size
    FROM (
    SELECT (’"’ || table_schema || ‘"."’ || table_name || ‘"’) AS table_name
    FROM information_schema.tables
    ) AS all_tables
    ORDER BY total_size DESC
    ) AS pretty_sizes;
    查单个表的大小:
    select pg_size_pretty(pg_relation_size(‘表名’));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值