软件技术人员需要对数字的敏感性

长假过完了,脑袋空转时间过长,严重不利于智商发育,所以写了这篇文章烧烧脑。本文通篇充斥了各种数字,图表,图画,坚持不住的允许半途而废,想脑洞开窍的还是要坚持,多培养对相关领域数字的敏感性。

为什么要看数字?

程序员每天要写代码,得益于摩尔定律,80%的场景是不需要关注自己写的程序的性能的,但现在互联网行业的IT开发人员越来越多,经常会有人遇到高并发情况下的性能问题,这些问题的根源有相当一部分是软件开发人员太“软”,把计算机系的基础课《计算机组成原理》知识还给老师了,对硬件知识掌握不够导致的。有些代码段需要有一些硬件知识的背景才能写好,所以这些数字就是为了磨练磨练这个敏感度。

中国单机时代(1981-1994)的程序员是幸福的,那时的程序员只要关注机器硬件的性能指标就行了,来优化自己的程序;但其实那代程序员也是不幸福的,那时的286内存少的可怜,我已经不记得我的那台286电脑的内存是多少了,但这个CPU的理论最大支持内存就是16MB。以当时的条件,家里那台机器配的内存肯定达不到最大值,保守估计有4MB就不错了,这个道理就跟现在的消费级的i5理论最大能配32GB,一般普通人4G就够了,普通游戏玩家或码农一般来个8G,有追求的骨灰级玩家或码农会来个16G,没人能达到主板支持的上限。

CPU缓存类:

本文假定读者已经了解现代计算机系统硬件方面的相关知识,对于一些计算机组成原理的常识不再做累述(可能稍微介绍下)。现代CPU缓存简单示意图:

上图为4核CPU,多核CPU的缓存设计大概是这样,L1与L2为每个核的内部cache,L3为几个核的共享cache。越靠近CPU的速度越快,成本越高,所以厂商的用料(容量)越小。

这是用CPU-Z看到的民用级CPU的缓存参数: L1 cache 4*128K=512KB,  L2 cache 1M,L3 cache 6MB。

操作                                   |大约时间        |时钟周期

CPU访问寄存器                     |秒杀             |1 cycle

CPU访问L1 Cache                |0.5 ns          |~3-4 cycles

CPU分支预测失败                  |5 ns            |

CPU访问L2 Cache                |7 ns            |~10-20 cycles

CPU访问L3 Cache                |~15 ns        |~40-45 cycles

Mutex加锁/解锁                   |100 ns        |

CPU内存访问                       |~60-120ns  |~120-240 cycles

千兆网络发送1MB数据           |10 ms         |

从内存顺序读取1MB数据        |0.25 ms      |

机房内网络来回                    |0.5 ms       |

异地机房之间网络来回           |30~100 ms |

SATA磁盘寻道                    |10 ms        |

从SATA磁盘顺序读取1MB数据|20 ms        |

固态盘SSD访问延迟              |0.1~0.2 ms|

数据中心数字常识:

大家知道互联网对服务器的需求特别大,美国很多大公司已经不满足于传统IDC提供的空间和运营成本,直接自建,facebook更是发起了open compute计划,为互联网行业的节能服务器和数据中心制定标准,国内厂商浪潮看到这个市场并参与进来开发了smart rack产品,也就是百度,阿里采购的天蝎机柜。其设计特点为机柜标准为44U标准机柜,分为上中下三个空间,1-20U和25-44U是计算节点的安装位,所以能装40台左右服务器。

U为机柜尺寸单位,为unit的缩写

服务器宽     19英寸

服务器厚度  1U = 4.445cm

机柜高尺寸以服务器厚度的倍数增加:

服务器机柜最大常规尺寸  42U

每个机架接入40台服务器

每台服务器的内存为24GB,磁盘为10×1TB=10T的SATA机械硬盘(15000转)或者10×160GB=1.6T的SSD固态硬盘

国内顶尖的数据中心最多可为一个机柜提供12KW的功率,而一个1U双路服务器的电源功率为500W左右。

常见网站PV(page views)数据:

PV是PC网站时代衡量一个网站规模的指标,直接翻译过来就是页面观看,常译为页面浏览量或点击量,因为一个web网站上每次用户点击都会导致页面变化,也即一个PV。

另外两个衡量指标也捎带介绍下:

UV, Unique Visitor,独立访客。访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。

IP,指独立IP数。00:00-24:00内相同IP地址之被计算一次。

一个网站规模怎么样,看这些统计的访问量就能看出来:

网站|日平均PV|时间

12306.cn     |1900万       |2015年2月25

12306.cn     |297亿         |2015年春运

weibo.com   |PV值8000万 |2015年2月25

tmall.com    |3亿5000万   |2015年2月25

taobao.com |12亿            |2015年2月25

京东            |2亿7000万   |2015年2月25

亚马逊中国    |2亿8000万   |2015年2月25

蘑菇街         |230万          |2015年2月25

知乎            |5200万        |2015年2月25

数据来源于http://www.alexa.cn/

部分引用资料:

大规模分布式存储系统:原理解析与架构实战

http://wenku.baidu.com/view/029214fe910ef12d2af9e714.html  服务器尺寸表

http://coderplay.iteye.com/blog/1485760   CPU cache

http://ifeve.com/cpu-cache-flushing-fallacy-cn/  CPU缓存刷新的误解

http://tech.hexun.com/2014-09-30/168994467.html 传统服务器噩梦 最新Smart Rack机柜解析

​见微知著:腾讯数据中心开放活动随想 http://solution.zdnet.com.cn/2014/0925/3034961.shtml



 

关于麦芽面包 darkjune_think:

麦芽面包分享的是一个从小就以找一份用电脑干活的工作为目标的人的见闻,思考。那时还是89年,那时能见到的一份这样的职业是用王码打字。当然,现在这个目标实现了,而且是一份还算可以的编程工作。现在代码写的不多了,更多的是对工程实践的思考,对系统架构的思考。故事还在继续,分享仍然不断

 

微信订阅号: darkjune_think

 

如何订阅:

  • 扫描下面的二维码,选识别二维码,选关注。

时间: 2024-10-14 21:17:11

软件技术人员需要对数字的敏感性的相关文章

IT软件技术人员的职位路线(从程序员到技术总监) - 部门管理经验谈

以前写过一个文(IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章),主要介绍笔者的职业发展之路,不过该文需要后续了,因为笔者现在从事的是"产品经理"一职.从笔者的导航文([置顶]博文快速导航)里,定义了IT软件领域的职业路线,基本涵盖了IT软件领域的发展思路.后续笔者会对职业路的职业做描述,但是,本文主要从IT软件工程师的角度去描述IT软件技术人员的发展历程道路.   一.软件工程师: 软件工程师是最基本的IT软件职位,但是他做的是最重要的底层的代码编写.所以说,软件工

众一科技诚邀软件技术人员加盟

问题描述 众一科技是一家很年轻的软件公司,目前正在蓬勃发展之中,希望更多的软件工程师可以加入我们的队伍.有意者请email简历至zhongyistudio@163.com,如果您是合适的,我们会及时与您取得联系,谢谢合作.我们这次招聘的对象是长沙本地的软件开发人员.JAVA软件工程师:任职要求:1.熟练掌握Java基础和数据结构,对OO有较好的理解:2.熟练掌握JSP.Servlet.JDBC等基础技术:3.能熟练使用Ecllipse或JBuilder:4.有数据库理论基础,至少熟悉MSSQL.

IT软件管理人员的职业路线(从技术经理到总经理) - CEO之公司管理经验谈

技术.业务和管理永远是工作的一个话题.笔者今天就根据自身的经验,通过这三个方面介绍下IT软件管理人员的职业路线.前面写过一个文(IT软件技术人员的职位路线(从程序员到技术总监) - 部门管理经验谈),该文描述的是软件技术人员的职位路线.还有一个文(IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章),写的是笔者的工作经历,从基本的底层员工到部门管理的职业道路.而今天本文讲的是IT管理人员方面的一些经验,就是管理人员的晋升之职业发展道路.   一.技术经理: 首先介绍的是技术方面的管

网络生活管理软件——“e秘书”寻求北京或成都的具有网络通信软件开发能力的兼职创业技术人员合作!

问题描述 "e秘书"是由北京市龙文蛛网科技持有,由著名整合营销策划大师.著名经理人龙辉策划并主持,由管理博士.信息与通信博士后汪文元主持技术工作的一款e生活管理软件,它是基于类似pidgin功能的多功能聊天平台上的一个功能强大的e生活管理软件,软件管理功能几乎涵盖了网民的全部网络生活项目管理,并有细腻而周密的项目研究.项目实现.项目推广方案(符合条件并有意合作者可以来函联系与索取),公司现计划扩充技术队伍,欲寻找具有网络通信软件开发能力,最好有实际项目经验(如几个知名IM软件的开发经验

如何用虚拟光驱模拟全国专业技术人员计算机应用能力考试

2001年,人事部以124号文的形式要求从2002年开始,推行全国专业技术人员计算机应用能力考试.考试不及格,不能晋升职称.笔者今年晋升职称,故去年报名参加了棋块考试,但要问成绩如何,现在还心有余悸.我的经验,书可不买(3本书就是近百元),但题一定要练.因考试是上机形式,试题只在随书赠送的光盘上,网上搜不到.我劝各位老鸟.大虾们千万别掉以轻心,老莱们更要注意.不花钱的办法只有一个,只要借来考试光盘,虚拟一下即可. 虚拟光驱程序下载 下载地址:http://www.skycn.com/soft/1

15个IT技术人员必须思考的问题

  行内的人自嘲是程序猿.屌丝和码农,行外的人也经常拿IT人调侃,那么究竟是IT人没有价值,还是没有仔细思考过自身的价值? 1. 搞IT的是屌丝.码农.程序猿? 人们提到IT人的时候,总会想到他们呆板.不解风情,专注于IT技术,就算性感的美女躺在旁边也无动于衷.事实真的是这样吗?虽说不能完全否定有这样的情况存在,但这是IT人普遍的特点吗?而其它行业也有很多这样的人,那为什么人们总是拿程序员说事?下图为2013年网上曾经流传的一张屌丝分布图(图片来自3dmgame.com),程序员行业居首. 而实

从软件技术演变到软件项目管理的进步

在这个演变过程中,软件项目管理的实质内容也在不断转变 20世纪90年代,无论是国内还是国外,应用软件技术主体还都处于DOS(个人电脑操作系统)下的编程状态. 那时的编程以代码行为单位,逐字逐句地进行编写,若要做个点击按钮,要写几十行代码,是很正常的事.光调试一个按钮代码,就需要花费几个小时的时间,编写语言主要为汇编.C.Basic等.编写工具跟现在Windows里的写字板一样,几乎全靠程序员个人的能力来解决编写问题.当时开发出来的应用软件主要是二维平面界面,如部分银行至今还在使用的前台服务系统:

技术人员如何跟传统行业打交道?

前几天,读了一本书叫<高难度谈话>,这本书主要讲的就是「沟通」问题,而本书的主题就是「人」--我们这些并不完美却真实的人.人是一种复杂的个体,我们每个人都有自己的观点.思想和感情.技术人员如此,传统行业的「老板」也是如此! 而在很多技术人员眼中,跟他们打交道要比敲代码要复杂「1000」倍.本期移动开发精英俱乐部讨论的主题就是「技术人员如何跟传统行业打交道?」,让我们来听一些技术同学的吐槽,还有哪些解决办法吧!本文系 OneAPM 市场部整理. 程序员眼中的传统行业 晓书生:我觉得跟传统行业打交

数据科学家和大数据技术人员工具包

数据科学家的常用工具与基本思路,数据分析师和数据科学家使用的工具综合概述,包括开源的技术平台相关工具.挖掘分析处理工具.其它常见工具等几百种,几十个大类,部分网址.为数据科学教育和知识分享,提高数据科学人员素质. 数据科学融合了多门学科并且建立在这些学科的理论和技术之上,包括数学.概率模型.统计学.机器学习.数据仓库.可视化等.在实际应用中,数据科学包括数据的收集.清洗.分析.可视化以及数据应用整个迭代过程,最终帮助组织制定正确的发展决策数据科学的从业者称为数据科学家.数据科学家有其独特的基本思