zoukankan      html  css  js  c++  java
  • Postgres数据库在Linux中优化

    I/O 优化
    1 打开 noatime nodirtime,async

    方法: 修改 /etc/fstab

    stat 命令查看 

    2 调整预读
    方法: 查看 sudo blockdev --getra /dev/sda
    设置 sudo blockdev --setra 4096 /dev/sdf (4096个扇区,即2M)
    3 调整虚拟内存参数
    A 方法: 查看 cat /proc/sys/vm/wappiness
    设置 vi /etc/sysctl.conf 添加

    vm.swappiness=0 虚拟内存参数 范围 0-100 越大越倾向使用swap空间 ,为了使数据库性能尽量平稳此参数设置为0

    vm.overcommit_memory=2 (0 启发式策略、1 调用总成功、2 禁用overcommit,完全避免OOM killer)   
    生效 sysctl -p

    swapoff -a

    B 方法:

    查看命令 vmstat -an 1 或 cat /proc/meminfo  

    4 写缓存优化

    vm.dirty_background_radio

    vm.dirty_radio

    vm.dirty_writeback_centisecs

    物理内存大将至调低些
    5 调整I/O 调度

     deadline 平衡所有请求,避免某个请求饿死,让响应时间最优化。

    A echo deadline > /sys/block/sddd/queue/scheduler

    B 修改 grub.conf

    elevator=deadline

    内存优化

    share_buffers 共享缓存区 推荐值内存的1/4 不要超过 1/2.

    work_mem 每个进程单独分配的内存

    maintence_work_mem 每个进程单独分配的内存,用于维护操作。

    双缓存的优化

    说明:数据库中对数据块设计了专门的共享内存缓存区,数据库的数据文件都在文件系统中,操作系统的文件系统也有缓存。

    数据库配置 huge_pages = try

    sysctl vm.nr_hugepages=10240

         

  • 相关阅读:
    HDU3480-Division-斜率dp
    CDQ题目套路总结 [未完成]
    HDU5773-The All-purpose Zero-多校#41010-最长上升子序列问题
    POJ2763-Housewife Wind-树上单点修改区间求和
    HDU3507-Print Article-斜率dp入门题
    POJ2187-Beauty Contest-凸包
    SPOJ QTREE-Query on a tree-树链剖分-边权
    扫描系统进程和获取某进程的PID
    ConfuserEx壳
    关于Intel漏洞的学习
  • 原文地址:https://www.cnblogs.com/zhangeamon/p/5485625.html
Copyright © 2011-2022 走看看