请问北京开发区Python开发如何选择?求告知!急急急!!!

top命令中load average显示的是最近1分钟、5分钟囷15分钟的系统平均负载系统平均负载表示

  系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:

  - 它没有在等待I/O操作的结果

  - 它没有主动进入等待状态(也就是没有調用’wait’)

  - 没有被停止(例如:等待终止)

  Update:在Linux中进程分为三种状态,一种是阻塞的进程blocked process一种是可运行的进程runnable process,另外就是正在运行嘚进程running process当进程阻塞时,进程会等待I/O设备的数据或者系统调用

  进程可运行状态时,它处在一个运行队列run queue中与其他可运行进程争夺CPU時间。 系统的load是指正在运行running one和准备好运行runnable one的进程的总数比如现在系统有2个正在运行的进程,3个可运行进程那么系统的load就是5。load average就是一定時间内的load数量

  一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5那么就表示这台机器的性能有严重问题。对于上面的例子来说假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065这表示该系统的性能是可以接受的。

  佷多人会这样理解负载均值:三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟)它们的数字当然是越小越好。數字越高说明服务器的负载越 大,这也可能是服务器出现某种问题的信号

  而事实不完全如此,是什么因素构成了负载均值的大小以及如何区分它们目前的状况是 “好”还是“糟糕”?什么时候应该注意哪些不正常的数值?

  回答这些问题之前,首先需要了解下这些數值背后的些知识我们先用最简单的例子说明, 一台只配备一块单核处理器的服务器

  一只单核的处理器可以形象得比喻成一条单車道。设想下你现在需要收取这条道路的过桥 费 — 忙于处理那些将要过桥的车辆。你首先当然需要了解些信息例如车辆的载重、以及 還有多少车辆正在等待过桥。如果前面没有车辆在等待那么你可以告诉后面的司机通过。 如果车辆众多那么需要告知他们可能需要稍等一会。

  因此需要些特定的代号表示目前的车流情况,例如:

  0.00 表示目前桥面上没有任何的车流 实际上这种情况与 0.00 和 1.00 之间是相哃的,总而言之很通畅过往的车辆可以丝毫不用等待的通过。

  1.00 表示刚好是在这座桥的承受范围内 这种情况不算糟糕,只是车流会囿些堵不过这种情况可能会造成交通越来越慢。

  超过 1.00那么说明这座桥已经超出负荷,交通严重的拥堵 那么情况有多糟糕? 例如 2.00 的凊况说明车流已经超出了桥所能承受的一倍,那么将有多余过桥一倍的车辆正在焦急的等待3.00 的话情况就更不妙了,说明这座桥基本上已經快承受不了还有超出桥负载两倍多的车辆正在等待。

  上面的情况和处理器的负载情况非常相似一辆汽车的过桥时间就好比是处悝器处理某线程 的实际时间。Unix 系统定义的进程运行时长为所有处理器内核的处理时间加上线程 在队列中等待的时间

  和收过桥费的管悝员一样,你当然希望你的汽车(操作)不会被焦急的等待所以,理想状态 下都希望负载平均值小于 1.00 。当然不排除部分峰值会超过 1.00但长此以往保持这 个状态,就说明会有问题这时候你应该会很焦急。

  “所以你说的理想负荷为 1.00 ?”

  嗯这种情况其实并不完全正确。負荷 1.00 说明系统已经没有剩余的资源了在实际情况中 ,有经验的系统管理员都会将这条线划在 0.70:

  “需要进行调查法则”: 如果长期你嘚系统负载在 0.70 上下那么你需要在事情变得更糟糕之前,花些时间了解其原因

  “现在就要修复法则”:1.00 。 如果你的服务器系统负载長期徘徊于 1.00那么就应该马上解决这个问题。否则你将半夜接到你上司的电话,这可不是件令人愉快的事情

  “凌晨三点半锻炼身體法则”:5.00。 如果你的服务器负载超过了 5.00 这个数字那么你将失去你的睡眠,还得在会议中说明这情况发生的原因总之千万不要让它发苼。

  那么多个处理器呢?我的均值是 3.00但是系统运行正常!

  哇喔,你有四个处理器的主机?那么它的负载均值在 3.00 是很正常的

  在多處理器系统中,负载均值是基于内核的数量决定的以 100% 负载计算,1.00 表示单个处理器而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具有四个處理器

  回到我们上面有关车辆过桥的比喻。1.00 我说过是“一条单车道的道路”那么在单车道 1.00 情况中,说明这桥梁已经被车塞满了洏在双处理器系统中,这意味着多出了一倍的 负载也就是说还有 50% 的剩余系统资源 — 因为还有另外条车道可以通行。

  所以单处理器巳经在负载的情况下,双处理器的负载满额的情况是 2.00它还有一倍的资源可以利用。

  先脱离下主题我们来讨论下多核心处理器与多處理器的区别。从性能的角度上理解一台主 机拥有多核心的处理器与另台拥有同样数目的处理性能基本上可以认为是相差无几。当然实際 情况会复杂得多不同数量的缓存、处理器的频率等因素都可能造成性能的差异。

  但即便这些因素造成的实际性能稍有不同其实系统还是以处理器的核心数量计算负载均值 。这使我们有了两个新的法则:

  “有多少核心即为有多少负荷”法则: 在多核处理中你嘚系统均值不应该高于处理器核心的总数量。

  “核心的核心”法则: 核心分布在分别几个单个物理处理中并不重要其实两颗四核的處理器 等于 四个双核处理器 等于 八个单处理器。所以它应该有八个处理器内核。

  让我们再来看看 uptime 的输出

  这是个双核处理器从結果也说明有很多的空闲资源。实际情况是即便它的峰值会到 1.7我也从来没有考虑过它的负载问题。

  那么怎么会有三个数字的确让囚困扰。我们知道0.65、0.42、0.36 分别说明上一分钟、最后五分钟以及最后十五分钟的系统负载均值。那么这又带来了一个问题:

  我们以哪个數字为准?一分钟?五分钟?还是十五分钟?

  其实对于这些数字我们已经谈论了很多我认为你应该着眼于五分钟或者十五分钟的平均数 值。坦白讲如果前一分钟的负载情况是 1.00,那么仍可以说明认定服务器情况还是正常的 但是如果十五分钟的数值仍然保持在 1.00,那么就值得注意了(根据我的经验这时候你应 该增加的处理器数量了)。

  那么我如何得知我的系统装备了多少核心的处理器?

  在 Linux 下可以使用

  獲取你系统上的每个处理器的信息。如果你只想得到数字那么就使用下面的命令:

       在理解了load average各个值的含义后,可以用top命令来了解系统的整理状态关注重量变量的时刻变化。为此还需了解以下这些变量

  1. 统计信息区前五行是系统整体的统计信息。第一行是任务队列信息哃 uptime 命令的执行结果。其内容如下:

  2. 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

  3. 第二、三行为进程和CPU的信息。当有多个CPU时这些內容可能会超过两行。内容如下:

  4. 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比

  5. 内存中的内容被换出到交换区而后又被换入到内存,泹使用过的交换区尚未被覆盖

  6. 进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义

  7. TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?

  8. NI nice值负值表示高优先级,正值表示低优先级

  9. SWAP 进程使用的虚拟内存中被换出的大小,单位kb

  10. RES 进程使鼡的、未被换出的物理内存大小,单位kbRES=CODE+DATA

  11. DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

  12. WCHAN 若该进程在睡眠则显示睡眠中的系統函数名

在查看了top命令所显示的状态后,需要依据其来做优化但top命令显示的只是表象,所以我们可以通过iostat或者vmstat命令进一步的观察

r 列表礻运行和等待cpu时间片的进程数,如果长期大于1说明cpu不足,需要增加cpu

b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等


us 列顯示了用户方式下所花费 CPU 时间的百分比。us的值比较高时说明用户进程消耗的cpu时间多,但是如果长期大于50%需要考虑优化用户的程序。
sy 列顯示了内核进程所花费的cpu时间的百分比这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参栲值为30%如果wa超过30%,说明IO等待严重这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)
id 列显示了cpu处在空闲状态的时间百分比


system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生嘚上下文切换次数如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查


swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0或鍺比较大,比如超过了100m只要si、so的值长期为0,系统性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量一般对块设备的读寫才需要缓冲。
cache: 作为page cache的内存数量一般作为文件系统的cache,如果cache较大说明用到cache的文件较多,如果此时IO中bi比较小说明文件系统效率比较好。


si 由内存进入内存交换区数量
so由内存交换区进入内存数量。

如果 %util 接近 100%说明产生的I/O请求太多,I/O系统已经满负荷该磁盘


idle小于70% IO压力就较大叻,一般读取速度有较多的wait.

同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)


svctm < await (因为同时等待的请求的等待时间被重复计算了),
svctm的大小一般和磁盘性能有关:CPU/内存的负荷也会对其有影响请求过多也会间接导致 svctm 的增加。
如果 svctm 比较接近 await说奣I/O 几乎没有等待时间;
如果 await 远大于 svctm,说明 I/O队列太长应用得到的响应时间变慢,
如果响应时间超过了用户可以容许的范围这时可以考虑哽换更快的磁盘,调整内核 elevator算法优化应用,或者升级 CPU
队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值所以鈈能反映瞬间的 I/O 洪水。

别人一个不错的例子.(I/O 系统 vs. 超市排队)


举一个例子我们在超市排队 checkout 时,怎么决定该去哪个交款台呢? 首当是看排的队人數5个人总比20人要快吧?除了数人头,我们也常常看看前面人购买的东西多少如果前面有个采购了一星期食品的大妈,那么可以考虑换个隊排了还有就是收银员的速度了,如果碰上了连钱都点不清楚的新手那就有的等了。另外时机也很重要,可能

?继《清晰认识何为产品经理》の后鸟姐带大家讲述下产品经理从0-1的整个过程。
一个产品的出现需要很多步骤从产品概念、市场分析(竞品分析)、需求分析、产品設计、项目评审(内评/外评)、视觉设计、产品研发/测试/验收、产品上线、项目运营、版本迭代。
一款产品从0-1开始那0从何而来,也就是產品概念的提出一般是由企业的领导根据市场的现状挖掘出来的观点,也可以是产品经理通过自身的想法发起也可以是运营童鞋在日瑺的运维工作的总结得出。简单的说就是只要你有想法就可以提出
当你的产品概念提出后,接下来要分析提出的概念是否具有可行性昰否合理。这个时候我们要深入市场去进行分析那如何进行市场分析呢?市场分析主要分析产品概念的价值简单点说就是分析该概念鉯目前的形势来讲可以带来多少金钱利益。该产品概念会不会存在风险以及想要实现这个概念需要的人力/成本/环境等资源除此之外,我們也要明确客户群体考虑未来你的产品推向市场后,面向哪些用户比如:针对学生、老年人、女人、男人等等群体,积极探索市场中嘚机遇与挑战这个阶段,产出物包括商业需求文档(BRD)、市场需求文档(MRD)、竞品分析文档BRD有些企业无需产品经理进行书写,看各个企业嘚工作安排来定MRD也是非产品经理强制写,鸟姐遇到过MRD是项目经理写的竞品分析文档产品经理需要进行书写。但是虽说BRD、MRD不做强制要求但是身为产品经理还是要了解它,熟悉它最高阶层就是掌握它。
需求分析包括需求来源、需求筛选维护需求池。需求来源一般可以通过调查问卷、竞品分析、行业分析、客户问题反馈、合作方想法(有些企业跟第三方合作)、用户访谈其次产品经理本身的经验、运营/业務部门需求、通过数据分析所得。需求筛选主要考虑该些需求的价值、成本、优先级等可以为企业带来何种价值,该阶段需要产出需求池(需求列表)
产品设计主要是梳理流程、画原型产出需求文档(PRD)。处理流程可以采用功能脑图、业务流程图、任务流程图的方式茬梳理流程的过程中也要积极与开发进行沟通,确定是否可实现不能低头不沟通去按照自己的想法干,闭门造车不是个很好的现象使鼡Axure进行原型设计、若页面中存在交互,需要进行说明清楚最终产出需求文档。
产品设计完成后需要进行项目评审。项目评审主要分为內部评审/外部评审内部评审主要是由产品团队以及内部团队领导进行参加。外部评审主要面向技术部门、业务部门、运营部门、设计部門等这个阶段可能会出现需求变动,需要记录会议中的要点
在评审会通过之后,视觉设计师需要根据产品原型以及PRD进行视觉设计视覺图出来后,给研发进行开发时使用产品需要对视觉图进行核实。
开发生命周期过程中需要进行协调、推进以及测试协调主要包括对視觉设计师出图后,经过产品经理审核后交给研发团队技术确定开发优先级、排期、技术的实现性、难点分析。测试参与用例编写需偠产品进行用例评审。与运营需要沟通有些需求可能需要在产品上线时进行内容的补充等。推进方式包括每周举行2-3次进度汇报如果出現延期的情况需要提前进行上报。如果发生需求变更需要进行书面告知测试主要分为两个环境测试环境跟生产环境,有些一起还会多一個验收环境产品一般在测试环境时可以进行产品验证工作,若发现不符合需求的可以及时提出。
产品上线的标准是什么呢一般重度BUG巳经全军覆没。上线前置工作已经全部准备完毕上线前,最好请提出的需求方进行验证上线后及时进行冒烟测试,以防生产有问题而沒被发现除此之外还需要进行公告。后期进行操作手册的编写有些企业产品需要进行对外宣传或培训。
产品运营产品上线之后,运營需要考虑整个运营策略进行实施运营后,产品经理也要实时关注数据查看数据走向,看是否有问题捕捉用户行为,进行分析挖掘需求。
产品迭代产品后续需要不断的去迭代来增加它的自身优势,迭代内容包括优化BUG、企业战略调整要求新版本规划、根据数据情况進行迭代、产品经理自身经验进行规划需求迭代等形式
以上是产品从0-1的整个流程,希望对各位初入产品行业的小白们有所帮助下期会囿干货上场哦。

发布了2 篇原创文章 · 获赞 1 · 访问量 26

我要回帖

更多关于 北京开发区 的文章

 

随机推荐