Author: admin

如何开启支持HTTP/2协议

鉴于HTTP/2的性能改进及主流浏览器都以支持,新浪云计划在近期对企业用户的部分上传了SSL的证书的域名开放使用HTTP/2功能,此功能默认关闭,需要用户自行开启。

HTTP/2诞生的背景

当前几乎所有互联网上的网页内容传输都采用了HTTP/1.1协议,随着网页内容和样式的发展,HTTP/1.1协议的劣势逐渐明显。…

理解字节序

1.

计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。

举例来说,数值0x2211使用两个字节储存:高位字节是0x22,低位字节是0x11

  • 大端字节序:高位字节在前,低位字节在后,这是人类读写数值的方法。
  • 小端字节序:低位字节在前,高位字节在后,即以0x1122形式储存。

Linux环境下的性能分析 之 IO篇

这周继续上上周的话题,关于linux下的一些性能分析。之前我们聊了CPU、内存的性能分析方法,这周我们聊聊关于磁盘IO的性能分析。

之前之所以去百度学道,就是因为老王在自己在学校瞎折腾的时候,发现自己的服务器如果压力稍微大一些,就扛不住,而且能很明显的听到磁盘哐哧哐哧飞速旋转的声音。所以,决心去bd看看,大公司是怎么样解决磁盘性能问题的。后来去贴吧学艺,正好接手了贴子存储系统的重构工作,后来和另外一个同事合作,完成了贴吧百亿贴子存储系统的研发,也算完成了当年的夙愿。当时做这个系统开发的时候,对于存储系统的研究还是比较多,今天就抽一些关于性能分析的方法给大家聊聊。…

    

Linux环境下的性能分析 之 内存篇

最近雾霾很严重,即使周末想必大家也很难得出门。与其在外面吸霾,不如在家看老王扯扯技术的淡。好了,言归正传,今天延续上周的话题,我们聊聊在linux下如何分析内存的性能。

 

上周有朋友给老王建议,说能不能用例子的方式来讲这一部分的内容?老王觉得是一个很好的建议。所以,老王就准备讲一个前一段时间发生的例子。也不知道效果好不好,姑且一试,讲的不好不要打我哈(即使要打也请不要打脸,不然周一没法上班~)…

    

Linux服务器的那些性能参数指标

一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息。通常来说运维人员、系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候,这些蛛丝马迹往往会帮助快速定位跟踪问题。
这里只是一些简单的工具查看系统的相关参数,当然很多工具也是通过分析加工/proc、/sys下的数据来工作的,而那些更加细致、专业的性能监测和调优,可能还需要更加专业的工具(perf、systemtap等)和技术才能完成哦。毕竟来说,系统性能监控本身就是个大学问。
linux-performance

一、CPU和内存类

1.1 top

➜ ~ top
linux-top
第一行后面的三个值是系统在之前1、5、15的平均负载,也可以看出系统负载是上升、平稳、下降的趋势,当这个值超过CPU可执行单元的数目,则表示CPU的性能已经饱和成为瓶颈了。

第二行统计了系统的任务状态信息。running很自然不必多说,包括正在CPU上运行的和将要被调度运行的;sleeping通常是等待事件(比如IO操作)完成的任务,细分可以包括interruptible和uninterruptible的类型;stopped是一些被暂停的任务,通常发送SIGSTOP或者对一个前台任务操作Ctrl-Z可以将其暂停;zombie僵尸任务,虽然进程终止资源会被自动回收,但是含有退出任务的task descriptor需要父进程访问后才能释放,这种进程显示为defunct状态,无论是因为父进程提前退出还是未wait调用,出现这种进程都应该格外注意程序是否设计有误。

第三行CPU占用率根据类型有以下几种情况:
(us) user: CPU在低nice值(高优先级)用户态所占用的时间(nice<=0)。正常情况下只要服务器不是很闲,那么大部分的CPU时间应该都在此执行这类程序
(sy) system: CPU处于内核态所占用的时间,操作系统通过系统调用(system call)从用户态陷入内核态,以执行特定的服务;通常情况下该值会比较小,但是当服务器执行的IO比较密集的时候,该值会比较大
(ni) nice: CPU在高nice值(低优先级)用户态以低优先级运行占用的时间(nice>0)。默认新启动的进程nice=0,是不会计入这里的,除非手动通过renice或者setpriority()的方式修改程序的nice值
(id) idle: CPU在空闲状态(执行kernel idle handler)所占用的时间
(wa) iowait: 等待IO完成做占用的时间
(hi) irq: 系统处理硬件中断所消耗的时间
(si) softirq: 系统处理软中断所消耗的时间,记住软中断分为softirqs、tasklets(其实是前者的特例)、work queues,不知道这里是统计的是哪些的时间,毕竟work queues的执行已经不是中断上下文了
(st) steal:

        

简单高效的代码部署方法

前言

代码部署是 Web 开发过程中必不可少的一个环节,伴随着业务的更新迭代,一个项目几乎每天都会有上线操作。

上线就意味着改变现有的页面样式或功能逻辑,这有可能会影响到用户的使用,所以上线部署代码需要谨慎操作。

但不论如何,还是有可能出现无法预料的问题,这个时候需要有快速回滚机制,让线上业务不受影响。

因此,我们需要一种简单高效的办法来部署代码,既能支持频繁发布,又能兼顾安全可靠。…

Tilix(Terminix):一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器

(Tilix)Terminix:一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器

现在,你可以很容易的找到大量的 Linux 终端模拟器,每一个都可以给用户留下深刻的印象。

但是,很多时候,我们会很难根据我们的喜好来找到一款心仪的日常使用的终端模拟器。这篇文章中,我们将会推荐一款叫做 Terminix 的令人激动的终端模拟机。

Terminix Linux 终端模拟器

Terminix 是一个使用 VTE GTK+ 3 组件的平铺式终端模拟器。使用 GTK 3 开发的原因主要是为了符合 GNOME HIG(人机接口

        

linux 性能分析 sar命令详解

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/OCPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。…