• 每个程序员都需要知道的数字(续)


    High Scalability - High Scalability - Numbers Everyone Should Know列举了另外一些数字:

    写很昂贵

    • 写是transactional的
    • disk access意味着disk seek
    • 经验法则:disk seek需要10毫秒
    • 算一算:1s/10ms = 100 seeks/s,每秒最多100次disk seek
    • 和数据的大小的形状有关系,批量处理。

    读很便宜

    • 都不需要transaction
    • 数据从磁盘中读取一次,很容易就被缓存
    • 所有后续的读取都是从内存来的
    • 经验法则:内存中读取1m的数据需要250微秒
    • 算一算:1s/250usec=4g/sec,美妙最多读4g的数据。对于1m的数据,每秒可以取4000次

    一些数字

    • L1缓存寻址需要0.5纳秒
    • branch mipredict需要5纳秒
    • L2缓存需要7纳秒
    • mutex lock/unlock需要100纳秒
    • 内存寻址需要100纳秒
    • 压缩1k的数据需要10000纳秒
    • 通过1gbps的网络发送2k的数据需要20000纳秒
    • 内存中读取连续的1m数据需要250000纳秒
    • round trip within same datacenter需要500000纳秒
    • 硬盘须知需要10000000纳秒
    • 从网络上读1m的连续数据需要10000000纳秒
    • 从磁盘上都1m的连续数据需要30000000纳秒

    小结

    • 写比读昂贵40倍
    • 全局共享的数据很昂贵。这是分布式系统的瓶颈。
    • 系统设计时就要考虑写操作的可扩展性。
    • 优化以减少写竞争。
    • 让写操作尽可能地并行。
  • 相关阅读:
    Easyui使用记录
    Ubuntu 设置UFW防火墙
    MySQL 官方文档
    MySQL 版本
    MySQL主从架构之Master-Master互为主备
    MySQL主从架构之Master-Slave-Slave级联
    MySQL主从架构之Master-Slave主从同步
    Linux crond实例
    Ubuntu su: Authentication failure
    MySQL基准测试
  • 原文地址:https://www.cnblogs.com/fresky/p/3053178.html
Copyright © 2020-2023  润新知