通过shell 脚本查看服务器的时时流量
通过shell 脚本查看服务器的时时流量
精选技术长文、实践记录与系统化阅读
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
通过shell 脚本查看服务器的时时流量
DNS,Domain Name System或者Domain Name Service(域名系统或者域名服务)。域名系统为Internet上的主机分配域名地址和IP地址。由于网络中的计算机都必须有个IP地址,这样相互之间才能通信,但让我们记住一大串的IP地址来访问网站显然是不可能的,所以用户使用域名地址,而DNS系统的功能就是自动把域名地址翻译为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。
IE8+新增了一个获取的文档兼容性模式属性——documentMode。一般的获取文档兼容模式可以这么写....
忍住你的欲望,不要试图重构你不理解的代码。多问问题,努力能清楚他们为什么要把程序写成这样。也许他们有很好的理由。如果你找到一段很古老的代码,很有可能它们是按照古老的方式写的。每天都在新增的API,模式,需求和新领会都会让这些老的方式显得陈旧。不断努力学习新的技术,但不要为了要使用这些技术而过于热心的在重构中使用它们。
说个案例:一台Apache服务器,由于其MaxClients参数设置过大,并且恰好又碰到访问量激增,结果内存被耗光,从而引发SWAP,进而负载攀升,最终导致宕机。 正所谓:SWAP,性能之大事,死生之地,存亡之道,不可不察也。 哪些工具可以监测SWAP 最容易想到的就是free命令了,它指明了当前SWAP的使用情况......
网站排障分析常用的命令
Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于 所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待 状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。
在拾掇家务时,发现一页我在 2008 年 10 月做的备忘录,记录了一个可用于抵御 DDoS 攻击的 IP 追踪技术。当时因为觉得 idea 太小,不值当写成文章投出去。纸张放那里总是占地方,在博客里电子化一下,然后就能销毁了。
下面这几幅图描绘的是一个爱喝啤酒的程序员是如何学习数据结构的,你可以看出,他酒喝了,数据结构也掌握了。
一次针对轻博客发展方向的探讨,仅作记录。 到底是博客,还是社区? 其实,这个产品没有一个本质或者唯一的答案,不能将其百分之百栓死在一个定位上,所以,绝对是博客,或者绝对是社区,或者绝对是媒体,都不正确。同问,豆瓣是书影音工具还是社区?微博是媒体还是社区?大众点评是查询美食的工具,还是挖掘草根力量点评美食的社区?无论说是前者,还是后者,都不能绝对。 轻博客朝着社区做?还是照着博客做?其实可以换一个问法。 有些人,把它当纯粹的记录工具来用。有些人,把它当做官方信息发布,对外宣传这个链接。有些人,不仅当做博客,而且展示作品给其他人,与其他人互动交流。那么,我们考虑一下,以上几种用法,哪一种对我们更有价值?或者说,对产品更有贡献?
总结一下近期产品心得,以表示对自己业务能力的鞭策,和对其他人业务能力的态度。 职位细分是必然趋势,也是入行门槛降低的直接原因。 刚开始,大家做网站的时候不太讲究视觉和排版,写代码的人搞个差不多,可视化就得了。那时候的工程师都是适合那个时代的小全才,自己写代码自己做交互自己做视觉。后来发现网站太大了,做不过来,得有专门的人帮忙做做前端,所以有了美工。再后来,人机交互更加复杂,面对的用户更加慵懒和白痴,不得不让可用性更加简单易用,就有了专门做交互设计的人。再再后来。。。。。。。。。
在 IPv6 中,Router Advertisement (简称 RA)是很关键的一个 ICMP 包,stateless autoconf 就是靠 RA 配置 IP 地址的,主机发送Router Solicitation(RS)广播,有点类似于 IPv4 中的 DHCP request,路由器就会回应 RA...
通常看到 TCP Small Queue (简称 TSQ)之后第一问题是,既然我们已经有 tcp_wmem 了,为何还需要一个新的 sysctl? 这个问题是理解 TSQ 的关键,其实 tcp_wmem 仅仅是从 TCP socket 层限制队列(或 buffer)...
用 Gearman 搭建 Map/Reduce ,GearmanManager 来管理所有的 workers。启动多个 gearman-manager daemon,为了充分利用服务器资源,使其运行于不同的 CPU 内核上。
Redis 是一个非常快速和强大的 Key-Value 存储(持久化)系统, 相对于一般的 NoSQL 存储系统, 它最大的特点是支持丰富的数据结构. 特别是其 zset(sorted set)数据结构, 堪称表达能力最强的结构之一(其它强大的数据结构如 sorted hashmap), 可以直接地表达业务逻辑.
MinHash首先它是一种基于 Jaccard Index 相似度的算法,也是一种LSH的降维的方法,应用于大数据集的相似度检索、推荐系统。下边按我的理解介绍下MinHash。 举例A,B 两个集合: A = {s1, s3, s6, s8, s9} B = {s3, s4, s7, s8, s10} 根据Jaccard Index公式,A,B的相似度 S(A,B) = |A∩B|/|A∪B| = 2/8 = 0.25, 用图表示如下: 当然直接计算两个集合的交集与并集,是很耗计算资源的,特别是在海量数据场景下不可行。 假如,我们随机从两个集合中各挑选一个元素s(A)、s(B),刚好这两个无素相同的概率是多少呢?
情况回放: 上周预发机器出了一个问题,CPU不定时会近100%满负载运行。重启以后就会恢复,之后又会到达100%,而且不会自恢复。 首先想到的是程序出现了死循环,于是用jstack把栈打印出来,发现业务线程都停在了regex相关的代码上,有死循环的样子。 查看栈,发现一切都是由ClientFilter这个类开始,其使用了matcher.matches()方法。这样一来,就很可能是由于输入了不规范的正则导致的了。
如果你好几个月不关注某个开源项目的源代码了,当再次需要研究代码时, 分析文档是非常有用的,对照代码和分析文档可以让你快速恢复到当初对代码的理解水平, 如果没有分析文档,通常又会浪费大量时间再重做一次。 以下两个例子就是我在分析HBase的HMaster和HRegionServer的启动流程时写的原始分析文档片断, 会有一些TODO或错误或过时的地方,因为这是个在研究过程中不断完善的文档, 并不是最终的,也没有终极文档,因为开源项目的代码一直在变动。
有 1000 枚硬币堆在一起。把它们任意分成两堆,并计算出这两堆的硬币数的乘积。然后,任意选择其中的一堆硬币,把它继续分成两个更小的堆,并计算出这两堆的硬币数的乘积。不断这样做下去,直到最后每堆都只剩一枚硬币为止。求证:把途中产生的所有乘积全部加在一起,结果是一个定值,它不随分法的改变而改变。 这是一个非常经典的问题。让我们把 1000 枚硬币换成 n 枚硬币,这样的话问题反而会更容易一些。如果初始时有 n 枚硬币,把它们分到底后,产生的所有乘积之和是多少呢?