zoukankan      html  css  js  c++  java
  • 《大规模 web服务开发》笔记

    大规模服务: 
        可扩展,负载均衡,保证冗余,低运维成本,开发人数和开发方法的变化 
    数据处理: 
        磁盘—>内存—>缓存—>CPU 
    障碍: 
        持续增长的服务,”无法在内存中计算“(内存要比磁盘快10^5~10^6倍) 
      
    Linux的页面缓存: 
        先把磁盘内容读入内存 
        ——>建立页面 
        建立好的页面不会释放而是保存下来 
        ——>页面缓存 
        除了例外情况,页面缓存会透明地作用在所有I/O上 
        ——>例外的情况为负责磁盘缓存部分(VFS) 
      
    VFS(Virtual File System):虚拟文件系统VFS作为一个抽象层,统一各个文件系统不同的函数,使之拥有共同接口,从而使用同样的机制同样的进行缓存,实现页面缓存以提高性能。 
      
    LRU(Least Recent Used):放弃最老的内容,留下最新的内容(其实就是个队列)。 
      
    sar工具:①追溯过去的统计数据 ②周期性地查看当前数据(详细内容见sar命令小结,麦库bigdata) 
      
    CPU扩展比较简单,可以借助于: 
        增加相同结构的服务器,通过负载均衡器来进行分散; 
        Web、应用程序服务器、爬虫 
    I/O负载的扩展十分困难,可借助于: 
        数据库; 
        大规模数据 
      
    处理大规模数据的重点: 
        能在内存中完成多少? 
            将磁盘寻道次数降到最低 
            可以实现分布式、有效利用局部性 
        能应对数据量增加的算法和数据结构 
            例如:线性搜索——>二叉树搜索 
                        O(n)--->O(log n) 
            数据压缩 信息搜索技术 
      
    处理大规模数据中,程序开发的底层基础 
        算法、压缩和搜索 
      
    写程序在处理大规模数据之前: 
        注意操作系统缓存 
        以分布式为前提的RDBMS应用 
        算法和数据结构 
      
    以页面缓存为基础的运维的基本规则 
        操作系统刚启动时不要将服务器投入生产环境 
        性能测试最好在缓存优化后进行

  • 相关阅读:
    论学究式教育
    Oracle中rownum与order by的执行顺序
    无效存储过程问题解决
    解决SGA_MAX_SIZE 的大小比 MEMORY_TARGET 大导致数据无法启动的错误
    ORACLE 按时间创建分区表
    Timage Canvas画图
    Oracle存储过程的加密
    Win32对话框模板创建的窗口上响应键消息,Tab焦点切换消息,加速键消息
    win32 TreeCtrl控件通知消息, LVN_SELCHANGED和LVN_ITEMCHANGED用法
    win32 对话框模板添加加速键
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7001342.html
Copyright © 2011-2022 走看看