运维不得不知的 Linux 性能监控、测试、优化工具
Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片。
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片。
在使用df、du命令时,常常会遇到统计的硬盘使用情况不一致的问题。比如du统计根目录下文件总共大小为2G,而df判断挂载在根目录的硬盘已用空间达到了3G,20G甚至更多。发生这种情况,有以下三种原因。。。
在实际的软件开发工作中,经常会涉及到socket编程,也就是利用socket来完成消息的交互和命令的执行。本文通过一个C程序来讲解Linux下socket的整个消息执行流程。
有个老项目,通过 Squid 提供文件下载功能,利用 delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能。
实时检索分析平台(Hermes)是腾讯数据平台部为大数据分析业务提供一套实时的、多维的、交互式的查询、统计、分析系统,为各个产品在大数据的统计分析方面提供完整的解决方案,让万级维度、千亿级数据下的秒级统计分析变为现实。
最简单的流式布局模型, 其实就是: 靠左, 靠右, 或者堆叠. 根据这个简单的理论, 可以用两个栈(Stack)数据结构, 一个表示靠左边的控件列表, 另一个表示靠右边的控件列表, 即可实现流式布局模型.
如果 MySQL 数据库比较大的话,我们很容易就能查出是哪些表占用的空间;不过如果 Redis 内存比较大的话,我们就不太容易查出是哪些(种)键占用的空间了。 有一些工具能够提供必要的帮助,比如 redis-rdb-tools 可以直接分析 RDB 文件来生成报告,可惜它不能百分百实现我的需求,而我也不想在它的基础上二次开发。实际上开发一个专用工具非常简单,利用 SCAN 和 DEBUG 等命令,没多少行代码就能实现。
我们主要通过两种形式提交向服务器发送请求:URL、表单。而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面。通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了。不同的操作系统、不同的浏览器、不同的网页字符集,将导致完全不同的编码结果。如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求?
我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的。在JSP转换为servlet过程中有两个地方存在编码:pageEncoding、contentType的charset。其中pageEncoding是jsp文件本身的编码,而contentType的charset是指服务器发送给客户端时的内容编码。
kvproxy中集群分为三种。默认集群,读集群和备份集群。读集群和备份集群都是可选项。如果没有设置读集群,将会从默认集群读取数据。如果没有设置备份集群,将不会做数据同步操作。
kvproxy的一个很重要的特性是能实现主从集群间的数据同步。有点类似于mysql和redis的主从数据同步。之所以实现这个功能,是因为在使用memcached的时候,有些时候需要两个集群间保持数据一致。而memcached又没有提供类似的功能。
不知大家有没有相关CSS中height:100%和height:inherit的有什么异同?是否可以替换使用?height:inherit的价值在哪里? 本文就将回答这一系列问题,同样的,有截图,有demo,还有必要的源代码展示,总之希望本文的内容对您的学习有所帮助。
我们使用 Plack::Component 提供的接口来在自己创建的应用中使用这些接口. 当我们见到 $app 时, 我们就可以使用这些行为, 这显然看起来就象中间件, 但从设计的角度来讲, 分离开来比较好. 不过这个东西不是在我们的应用中必须的, 它会增加我们的复杂性.
plackup 通过执行 PSGI 的应用来开始 PSGI 的服务. 这个脚本只是非常简单的封闭了 Plack::Runner. 其它的所有都是通过 Plack::Runner 来执行.
在超市结帐的时候,收银员都会给我们打一张小票。有时候同样的商品我们会买两三件,打印在小票上面,有时候只有1行记录,数量是3,但也有时候有3行记录,数量都是1。这个现象很有意思,也引起了我的兴趣。据我观察,后一种情况明显更多。分明是前一种做法更节省纸张,为什么更少采用呢? 我曾经设想,是因为收银的机器性能太差,内存很少,只能维护简单的数组结构,不能维护集合,也不能每添加一样商品就去重新扫描一次数组做修改。但是继续观察就会发现,这个说法站不住脚——现代的收银机性能足够很好了,甚至手机的性能都在突飞猛进。那么这么做的原因到底在哪里呢?就在我百思不得其解之际,一个偶然的机会解开了我的疑惑。
IE的Matrix矩阵变换,或者zoom缩放会改变元素原本占据的展示尺寸,位置等,与CSS3优雅的transform完全不一样,导致,我们需要对IE做额外的偏移。 但是,我们大多数人的数学都是体育老师交的,计算偏移值什么的,想想就大头娘娘了,难道,就不能跟CSS3 transform一样,就规规矩矩居中放大吗? 童鞋,略施小计,还是有办法滴……
我有写大量的代码, 但我想要是能更快更好的读代码的能力也很重要. 我和 ranguard 有一起共事的殊荣, 我发现他象一个读代码的猎豹, 非常让人羡慕. 所以我现在开始分析各种 CPAN 的模块源代码来进行练习
某一天,你正在埋头苦干,一封邮件嗖地一下发了过来。你打开一看,原来是开发经理要你去排查一个问题。既然老大都发话了,你能不照办吗?于是乎,你极不情愿地放下了手上的工作,打开了另外一个代码工程。 很多程序员都会有上面的经历,本来工作得好好的,但邮件一来,自己就被“迫”去做其他事情了。
Plack::Builder 为中间件的开发提供了特定领域语言 domain specific language (DSL) 的风格。
缘起 http代理时,域名解析发生在client端还是代理服务器端?