zoukankan      html  css  js  c++  java
  • 2019年春阅读笔记9——一些基础优化

    优化思路
    定位问题点吮吸:硬件-->系统-->应用-->数据库-->架构(高可用、读写分离、分库分表)。
    处理方向:明确优化目标、性能和安全的折中、防患未然。
    硬件优化
    主机方面:
    根据数据库类型,主机CPU选择、内存容量选择、磁盘选择:
    1)平衡内存和磁盘资源;
    2)随机的I/O和顺序的I/O;
    3)主机 RAID卡的BBU(Battery Backup Unit)关闭。
    CPU的选择:
    CPU的两个关键因素:核数、主频
    根据不同的业务类型进行选择:
    1)CPU密集型:计算比较多,OLTP - 主频很高的cpu、核数还要多
    2)IO密集型:查询比较,OLAP - 核数要多,主频不一定高的
    内存的选择:
    OLAP类型数据库,需要更多内存,和数据获取量级有关。
    OLTP类型数据一般内存是Cpu核心数量的2倍到4倍,没有最佳实践。
    存储方面:
    1)根据存储数据种类的不同,选择不同的存储设备;
    2)配置合理的RAID级别(raid5、raid10、热备盘);
    3)对与操作系统来讲,不需要太特殊的选择,最好做好冗余(raid1)(ssd、sas、sata)。
    4)raid卡:
    主机raid卡选择:
    实现操作系统磁盘的冗余(raid1);
    平衡内存和磁盘资源;
    随机的I/O和顺序的I/O;
    主机raid卡的BBU(Battery Backup Unit)要关闭。
    网络设备方面:
    使用流量支持更高的网络设备(交换机、路由器、网线、网卡、HBA卡)
    服务器硬件优化
    1)物理状态灯
    2)自带管理设备:远程控制卡(FENCE设备:ipmi ilo idarc)、开关机、硬件监控。
    3)第三方的监控软件、设备(snmp、agent)对物理设施进行监控。
    4)存储设备:自带的监控平台。EMC2(hp收购了)、 日立(hds)、IBM低端OEM hds、高端存储是自己技术,华为存储。
    系统优化
    Cpu:
    基本不需要调整,在硬件选择方面下功夫即可。
    内存:
    基本不需要调整,在硬件选择方面下功夫即可。
    SWAP:
    MySQL尽量避免使用swap。
    阿里云的服务器中默认swap为0。
    IO :
    raid、no lvm、ext4或xfs、ssd、IO调度策略。
    Swap调整(不使用swap分区)
    /proc/sys/vm/swappiness的内容改成0(临时),/etc/sysctl. conf上添加vm.swappiness=0(永久)
    这个参数决定了Linux是倾向于使用swap,还是倾向于释放文件系统cache。在内存紧张的情况下,数值越低越倾向于释放文件系统cache。
    当然,这个参数只能减少使用swap的概率,并不能避免Linux使用swap。
    修改MySQL的配置参数innodb_flush_ method,开启O_DIRECT模式:
    这种情况下,InnoDB的buffer pool会直接绕过文件系统cache来访问磁盘,但是redo log依旧会使用文件系统cache。
    值得注意的是,Redo log是覆写模式的,即使使用了文件系统的cache,也不会占用太多。
    IO调度策略:
    #echo deadline>/sys/block/sda/queue/scheduler 临时修改为deadline
    永久修改
    vi /boot/grub/grub.conf
    更改到如下内容:
    kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet
    系统参数调整
    Linux系统内核参数优化:
    vim/etc/sysctl.conf
    net.ipv4.ip_local_port_range = 1024 65535:# 用户端口范围
    net.ipv4.tcp_max_syn_backlog = 4096
    net.ipv4.tcp_fin_timeout = 30
    fs.file-max=65535:# 系统最大文件句柄,控制的是能打开文件最大数量
    用户限制参数(MySQL可以不设置以下配置):
    vim/etc/security/limits.conf
    * soft nproc 65535
    * hard nproc 65535
    * soft nofile 65535
    * hard nofile 65535
    应用优化
    业务应用和数据库应用独立;
    防火墙:iptables、selinux等其他无用服务(关闭):
    chkconfig --level 23456 acpid off
    chkconfig --level 23456 anacron off
    chkconfig --level 23456 autofs off
    chkconfig --level 23456 avahi-daemon off
    chkconfig --level 23456 bluetooth off
    chkconfig --level 23456 cups off
    chkconfig --level 23456 firstboot off
    chkconfig --level 23456 haldaemon off
    chkconfig --level 23456 hplip off
    chkconfig --level 23456 ip6tables off
    chkconfig --level 23456 iptables off
    chkconfig --level 23456 isdn off
    chkconfig --level 23456 pcscd off
    chkconfig --level 23456 sendmail off
    chkconfig --level 23456 yum-updatesd off
    安装图形界面的服务器不要启动图形界面runlevel 3。
    另外,思考将来我们的业务是否真的需要MySQL,还是使用其他种类的数据库。用数据库的最高境界就是不用数据库。

  • 相关阅读:
    算法----(1)冒泡排序
    淘宝爬虫
    爬虫_豆瓣电影top250 (正则表达式)
    爬虫_猫眼电影top100(正则表达式)
    Android 简单调用摄像头
    Android 简单天气预报
    思维模型
    This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you
    Android studio preview界面无法预览,报错render problem
    Android studio 3.1.2报错,no target device found
  • 原文地址:https://www.cnblogs.com/kangxy/p/11053803.html
Copyright © 2011-2022 走看看