CPU的三种架构

1. SMP

SMP (Symmetric Multiprocessing) , 对称多处理器。

优点:适用于小于等于4个CPU的架构,共享CPU、内存和IO

缺点: 横向扩展差,CPU一多总线成为瓶颈

通过以下命令发现只有一个Node则说明为SMP:

ls /sys/devices/system/node/

2. MPP

MPP (Massive Parallel......

slab机制与伙伴算法

1. 伙伴系统(伙伴算法)

1.1 概览

伙伴系统(buddy system)或者称伙伴算法主要应用在操作系统的内存分配中。在操作系统课程中也是必提的概念。

该算法主要好处是:

搜索分配内存块较为快速,O(logN)时间复杂度

外部碎片概率较低: 按2的幂划分,可以理解为一种分层次的Best fit

1.2 分配和释放内存过程

维基百科有个例子可以参考:https://en.wikipedia.org/wiki/Buddy_memory_allocation

总体思想就是:分配内存的时候按照基本内存块大小,按照2的幂来分裂,直到best fit满足; 释放内......

使用tshark在命令行进行网络抓包

使用wireshark的客户端进行抓包,或者tcpdump抓包再用wireshark分析,网上已经有很多资料了,这里就不再赘述了。不熟悉的可以看看网上的资料:http://www.jianshu.com/p/a62ed1bb5b20 或者官方文档user guide:https://www.wireshark.org/docs/wsug_html_chunked/

线上问题排查,有时候时间争分夺秒,或者一些私有云环境完全隔离,根本没法让你导出抓包的文件,这时候需要直接使用命令行进行抓包分析。今天我们就来学习下tshark的使用。PS: tshark基本上可以替代tcpdump,抓包的文......

浅析TTL

1. 什么是TTL

TTl=time to live,表征数据包在网络上的存活时间。这个time的单位一般是“跳数”。

我们进行ping操作的时候使用的ICMP协议,即采用基于TTL的机制来判断该数据包的传输是否正常。

2. 为什么要有TTL

简单来说,为了避免数据包在网路上的传送路径造成死循环或者无休止的投递下去,每个ip数据包都包含乐一个寿命计数器,这个就是数据包的的生存时间TTL,也叫hop count,只要一个路由器处理过这个数据包,它就递减这个数据包的寿命计数,当寿命计数递减到0的时候,路由器就丢弃该包.

TTL在一定程度上反应了一个IP数据包经过的路由器的多......

缓存雪崩和缓存击穿

1. 缓存击穿(穿透)

1.1 定义

缓存穿透: 查询一个在缓存内必然不存在的数据。例如查询一篇文章的ID,这个ID在缓存和DB里面都是必然不存在的。如果类似这样的查询请求特别多,就会给DB带来很大的压力。

1.2 解决

使用BITMAP来过滤:最常见的则是采用布隆过滤器(bloom filter),将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。在JAVA里面使用布隆过滤器,可以使用guava里面的bloomFilter。如果需要基本的bitmap数据结构,可以使用util下面的Bi......