应用层面的优化

应用层面的优化

    性能通常的瓶颈是缓慢的查询,锁,CPU饱和,网络延迟和文件I/O
    寻找常见问题
            1.各个机器上的CPU,磁盘,网络和内存资源的使用情况。注意检查配置文件
            2.应用是否真正使用了所取得的数据
            3.应用和数据库是否做了该由对方做的事情
            4.应用里执行了太多的查询
            5.应用无必要的连接到MySQL
            6.连接到MySQL的次数太多
            7.做了太多不必要的查询
            8.是否使用了连接池
            9.是否使用了永久性连接
           10.是否在没有使用的时候,打开着连接

web服务器

    Apache使用注意事项
            1.不要把Apache用作静态内容的服务,可以选择lighttpd和nginx
            2.使用缓存代理服务器,squid和varnish,可以缓存大部分页面,可以通过ESL技术把页面上小块动态部分放在缓存的静态部分里
            3.对动态,静态内容设置过期策略
            4.开启gzip压缩
            5.不把Apache上的长距离连接配置为Keep-Alive模式。可以用一个服务端的代理处理Keep-Alive的连接,在Apache与代理之间可以设置为Keep-Alive,因为代理只使用几个连接从服务器上读取数据

缓存

    分为:主动缓存和被动缓存
    被动缓存只保存数据和返回数据,比如memcached
    主动缓存找不到请求数据时,一般会把请求传递给应用的某一部分,生成所请求的内容,然后存储这部分数据,并返回给客户端,比如squid
    应用层面的缓存:
            本地缓存,比较小,只存在于请求处理时的进程内存空间里,避免对同一资源多次请求。只是应用程序代码里的一个变量或一个散列表
            分布式内存缓存,memcached,有效的使用方法是“多取”操作
            磁盘缓存,慢速,持久性对象适合做磁盘缓存。常用技巧用404错误处理过程来捕捉没命中的缓存
    缓存控制策略
            存活时间,每个缓存对象带有一个作废日期,用一个删除进程定时检查该数据的作废时间是否到达,可以删除或者更新
            显式作废,当缓存里的数据过于陈旧,可以直接将该数据标志作废或者用新的数据替换旧缓存数据(保存对象到缓存时,还有保存数据所依赖的版本号或时间戳)
            读时作废,保存一些信息来判断从缓存里读取的数据是否已经作废,随着时间的增长,开销是固定的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值