CentOS 7 升级内核开启 BBR

有两台在美国的 VPS,带宽是千兆, 系统跑的是 CentOS 7,不过一直以来都跑不满百兆.最近看到 Linux Kernel 4.9 版本已经正式发布有段时间了,而谷歌的 BBR 流量拥塞算法已经合并到 4.9 的内核主分支中了, 就记录下升级CentOS 内核试试 BBR 的过程. 首先要有 root 或 sudo 权限. # 安装最新 Linux Kernel 的 CentOS 源 rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm … “CentOS 7 升级内核开启 BBR”

Read More

创建基于Fannel网络的Kubernetes 1.5.4

Kubernetes 是个基于容器的调度编排工具,源于谷歌,现在全球的开发者在为其贡献代码.它极大的方便了分布式部署服务的难点,我认为这应该是将来服务发布部署主流的方向. Kubernetes现在底层调度的是Docker.去年我接触了Docker,Docker的容器给我的感受就是它确实是比 KVM 模式便捷许多,并且 KVM 有的资源分配与环境隔离Docker都已经实现的较为完全了,相比于 KVM,其优势就是任务的快速创建和资源的快速回收.Kubernetes则是在此之上统一管理调度这些任务和资源. 而Kubernetes的难点在于其部署的过程极为复杂,并且网络配置也较为困难.我看了一天,也才略微懂了皮毛. 参考Kubernetes.io 准备环境 需要准备好各个节点的名称,IP,以及需要的docker,etcd,kubernetes等运行程序,全部流程使用root权限,关闭SELinux与Firewalld服务. 节点名称和IP 三个节点,既为master也为node,运行系统为 CentOS 7. Node Name IP node1 192.168.200.21 node2 192.168.200.22 node3 192.168.200.23 将每个节点的Hostname改为对应的Node Name: # node-1 hostnamectl –static set-hostname node1 # node-2 … “创建基于Fannel网络的Kubernetes 1.5.4”

Read More

hiredis异步调用的接口封装

hiredis 是来自 redis 官方的 C 语言驱动(官方没有推出C++版的驱动,其他的都不是官方的,请认准一家),支持所有 redis 功能的调用,并且包含同步与异步模式,效率极高。 下载最新的稳定版0.13.3,使用make生成静态库和动态库,选择是否install安装到系统环境中。我通常直接将库放到项目中,指定include路径,这样可以减少项目中开发的环境不一致问题。 再要求高并发的项目中,应该尽量避免使用同步的方法,虽然同步的编程难度相比于异步而言要低很多。hiredis 中同时提供了同步和异步的调用接口,其代码质量十分优秀。 使用异步的接口需要导入头文件hiredis.h和async.h,最后还要导入异步事件的驱动头文件,hiredis 提供了对 ae,libev,libevent,libuv,qt 还有 macosx 异步库的支持,相应头文件在 adapters 文件夹中,这里用 uv 库. 头文件如下: #include “hiredis/hiredis.h” #include “hiredis/async.h” #include “hiredis/adapters/libuv.h” typedef struct redisConfig { char addr[256];//the full … “hiredis异步调用的接口封装”

Read More