zoukankan      html  css  js  c++  java
  • 系统/应用优化经验总结及资料整理

    系统/应用优化经验总结及资料整理

    一、系统性能瓶颈定位

    Linux服务器性能评估与优化 http://wenku.baidu.com/view/f13ca069b84ae45c3b358c34.html
    linux服务器的性能分析与优化 http://www.cnblogs.com/suihui/p/3799669.html
    TCP相关知识总结 http://www.ttlsa.com/network-tech/tcp-related-knowledge-summary/

    Linux查看机器负载 http://blog.csdn.net/szchtx/article/details/38455385
    理解Linux系统负荷 http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html
    linux服务器上tcp有大量time_wait状态的解决方法和原因解释 http://wuzhangshu927.blog.163.com/blog/static/11422468720139235119697/

    线上操作与线上问题排查实战 https://mp.weixin.qq.com/s/ZZp0H5vIBNu47KsiJOju2Q

    二、Nginx
    2.1.error.log错误日志里面的信息

    2.2.针对访问日志access.log进行问题查找
    使用 awk 命令行快速分析 IBM HTTP Server 访问日志 http://www.ibm.com/developerworks/cn/linux/l-cn-awk-httplog/

    #统计 请求时间超过10s的记录
    awk '($NF > 10){print $0}' access.log

    #统计每分钟请求数量
    awk -F: '{count[$2":"$3]++} END {for (minute in count) print minute, count[minute]}' access.log | sort

    #统计每小时请求数量
    awk -F: '{count[$2]++} END {for (minute in count) print minute, count[minute]}' access.log | sort

    统计访问最多的前十个 IP 地址
    awk '{print $1}' /usr/local/tengine/logs/access.log |sort|uniq -c|sort -nr |head -10

    查找并显示所有状态码为 404 的请求
    awk '($9 ~ /404/)' access.log

    统计所有状态码为 404 的请求
    awk '($9 ~ /404/)' access.log | awk '{print $9,$7}' | sort


    AWK程序设计语言 http://awk.readthedocs.org/en/latest/

    2.3.Nginx参数配置
    nginx优化 突破十万并发 http://blog.chinaunix.net/uid-20662363-id-3051474.html

    2.4 通过Nginx,Tomcat访问日志(access log)记录请求耗时

    http://www.cnblogs.com/huligong1234/p/4220017.html


    三.MySQL
    3.1数据库服务器健康分析
    Mysql 高负载排查思路 http://dngood.blog.51cto.com/446195/1150031

    3.2.开启慢查询slow_log,找到影响性能的SQL
    pt-query-digest查询日志分析工具 http://blog.csdn.net/seteor/article/details/24017913
    MySQL 慢查询日志分析及可视化结果 http://www.ttlsa.com/mysql/mysql-slow-query-log-analysis-and-visualization-of-results/
    Mysql慢查询与分析 http://itopic.org/mysql-manchaxun-fenxi.html

    3.3.性能优化
    mysql性能优化-慢查询分析、优化索引和配置 http://blog.chinaunix.net/uid-11640640-id-3426908.html

    MySQL性能优化的最佳20+条经验 http://www.cnblogs.com/AloneSword/p/3207372.html
    mysql 性能优化方向 http://www.cnblogs.com/AloneSword/p/3207697.html
    MySQL 5.6的72个新特性(译) http://lgdvsehome.blog.51cto.com/3360656/1180224
    MySQL 5.6 新特性体验 http://blog.51cto.com/zt/494
    mysql各个主要版本之间的差异. http://blog.csdn.net/z1988316/article/details/8095407
    MySQL运行状态show status 详解 http://www.51yunwei.com/archives/102
    MySQL的调优技巧 http://www.51yunwei.com/archives/66
    MYSQL性能调优工具介绍 http://wenku.baidu.com/view/85af4ccfbb4cf7ec4afed0ad.html
    MySQL性能调优介绍 http://wenku.baidu.com/view/ed254d48783e0912a2162a3c.html
    MySQL优化—工欲善其事,必先利其器之EXPLAIN http://www.cnblogs.com/magialmoon/archive/2013/11/23/3439042.html
    MySQL优化—工欲善其事,必先利其器之慢查询 http://www.cnblogs.com/zhanjindong/p/3472804.html
    关于mysql中explain的那些事儿 http://ustb80.blog.51cto.com/6139482/1064261
    MySQL松散索引扫描与紧凑索引扫描 http://mdba.cn/?p=516
    MySQL5.6之use_index_extensions优化 http://mdba.cn/?p=538
    mysql中用percona-toolkit监视死锁 http://www.51yunwei.com/archives/283
    理解MySQL数据库覆盖索引 http://blog.haohtml.com/archives/13504

    3.4.监控mysql每个ip的连接数
    select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;


    四、Tomcat
    4.1各种参数配置server.xml
    tomcat的maxThreads、acceptCount(最大线程数、最大排队数) http://www.cnblogs.com/baibaluo/archive/2011/08/23/2150305.html

    Tomcat服务器-并发压力测试下调优注意点小结 http://blog.csdn.net/shuzui1985/article/details/8577233

    五、应用程序
    5.1数据连接池配置
    连接池大小,maxPoolSize maxIdleTime initialPoolSize

    druid,监控数据库访问性能 https://github.com/alibaba/druid

    5.2数据库读写分离

    5.3加入方法耗时统计代码


    六、架构优化
    目标:高可用负载均衡

    基于keepalived 实现VIP转移,lvs,nginx的高可用
    http://limian.blog.51cto.com/7542175/1301776

    Nginx+Keepalived高可用架构平台
    http://wgkgood.blog.51cto.com/1192594/1028529

    Nginx+keepalived主主负载均衡服务器
    http://yijiaxin.blog.51cto.com/2973774/844760

    利用keepalived构建高可用MySQL-HA
    http://blog.csdn.net/catoop/article/details/41285001

    Haproxy、Keepalived双主高可用负载均衡
    http://blog.chinaunix.net/uid-25266990-id-3989321.html

    如何快速构建高可用集群(Keepalived+Haproxy+Nginx)
    http://www.it165.net/admin/html/201405/2957.html

    分布式ActiveMQ集群
    http://shensy.iteye.com/blog/1752529

    ActiveMQ JDBC 主从集群
    http://88250.b3log.org/ActiveMQ-JDBC-Master-Slave


    七、监控
    zabbix http://www.ttlsa.com/html/tag/%E7%9B%91%E6%8E%A7/
    http://www.ttlsa.com/html/tag/%E6%8A%A5%E8%AD%A6/

    利用shell脚本来监控linux系统的负载与CPU占用情况
    http://huangrs.blog.51cto.com/2677571/788379/


    八、请求跟踪
    Fiddler 教程 http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html

    抓包工具Fidder详解 http://blog.csdn.net/jiangwei0910410003/article/details/19806999

    Android抓包方法(一)之Fiddler代理 http://www.cnblogs.com/findyou/p/3491014.html
    Android抓包方法(二)之Tcpdump命令+Wireshark http://www.cnblogs.com/findyou/p/3491035.html
    Android抓包方法(三)之Win7笔记本Wifi热点+WireShark工具 http://www.cnblogs.com/findyou/p/3491065.html

    Wireshark基本介绍和学习TCP三次握手 http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html
    Wireshark教程-中文版 http://wenku.baidu.com/view/fedba80016fc700abb68fce1.html

    Burp Suite使用介绍(一) http://drops.wooyun.org/tools/1548
    Burp Suite使用介绍(二) http://drops.wooyun.org/tools/1629
    Burp Suite使用介绍(三) http://drops.wooyun.org/tips/2247
    Burp Suite使用介绍(四) http://drops.wooyun.org/tips/2504

    九、安全发布

    nginx 灰度发布
    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
    灰度发布一般有三种方式 nginx+lua(根据IP或其他参数),nginx根据cookie分流,nginx 根据权重来分配
    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=531464&id=4140473


    十、相关视频教程

    Linux 运维 http://edu.51cto.com/course/courseList/id-48.html
    MySQL http://edu.51cto.com/course/courseList/id-17.html

    高性能Linux服务器构建实战》一书官方配套视频
    Drbd+Heartbeat+Lvs+Keepalived+Mysql可行性分析 http://edu.51cto.com/course/course_id-84.html
    第23讲Drbd+Heartbeat+Lvs+Keepalived+Mysql可行性分析 ppt http://down.51cto.com/data/609477

  • 相关阅读:
    腾讯云环境配置之PHP5.6.3 + redis扩展 稳定版
    越狱后的ios如何用apt-get 安装各种命令
    批量 kill mysql 中运行时间长的sql
    谷歌Chrome浏览器开发者工具的基础功能
    话说好像是这样,ios下面通常用iframe来打开你的scheme地址; Android下通常用location.href来。。。 不过实际情况好像比这个复杂得多。。
    js判断移动端是否安装某款app的多种方法
    设计不错的网站
    BADIP filter
    开窗函数 函数() OVER()
    2018年1月初的一次面试题
  • 原文地址:https://www.cnblogs.com/huligong1234/p/4264952.html
Copyright © 2011-2022 走看看