返回首页
最新 | 最热门 | 最高评价

+0  记一次Kubernetes/Docker网络排障

Tag: Unix/Linux | 操作系统 | 大发排列3 | Docker | Kubernetes | Linux | network | Systemd
陈皓 发于 2018年12月08日 11:57 | 点击: 1142 | 展开摘要
昨天周五晚上,临下班的时候,用户给我们报了一个比较怪异的Kubernetes集群下的网络不能正常访问的问题,让我们帮助查看一下,我们从下午5点半左右一直跟进到晚上十点左右,在远程不能访问用户机器只能远程遥控用户的情况找到了的问题。这个问题比较有意思,我个人觉得其中的调查用到的的命令以及排障的一些方法可以分享一下,所以写下了这篇文章。

问题的症状

用户直接在微信里说,他们发现在Kuberbnetes下的某个pod被重启了几百次甚至上千次,于是开启调查这个pod,发现上面的服

查看全文: http://shapenut.com/item/17235.html

+0  程序员练级攻略(2018) 与我的专栏

Tag: 大发排列3网址 | 大发排列3 | C++ | Java | 大发排列3 | Linux | Programmer | Python | React | Unix | Web
陈皓 发于 2018年05月29日 12:38 | 点击: 1008 | 展开摘要
写极客时间8个月了,我的专栏现在有一定的积累了,今天想自己推荐一下。因为最新的系列《程序员练级攻略(2018)版》正在连载中,而且文章积累量到了我也有比较足的自信向大家推荐我的这个专栏了。推荐就从最新的这一系统的文章开始。

2011年,我在 CoolShell 上发表了 《程序员技术练级攻略》一文,得到了很多人的好评(转载的不算,在我的网站上都有近1000W的访问量了)。并且陆续收到了一些人的反馈,说跟着这篇文章找到了不错的工作。几年过去,也收到了好些邮件和私信,希望我把这

查看全文: http://shapenut.com/item/17009.html

+0  Linux PID 1 和 Systemd

Tag: Unix/Linux | 操作系统 | 程序设计 | Linux | Systemd | Unix | Upstart
陈皓 发于 2017年07月16日 21:40 | 点击: 995 | 展开摘要
要说清 Systemd,得先从Linux操作系统的启动说起。Linux 操作系统的启动首先从 BIOS 开始,然后由 Boot Loader 载入内核,并初始化内核。内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程,也叫根进程。它负责产生其他所有用户进程。所有的进程都会被挂在这个进程下,如果这个进程退出了,那么所有的进程都被 kill 。如果一个子进程的父进程退了,那么这个子进程会被挂到 PID 1 下面。(注:PID 0

查看全文: http://shapenut.com/item/16372.html

+0  缓存更新的套路

Tag: Unix/Linux | 程序设计 | cache | Design | design pattern | Linux
陈皓 发于 2016年07月27日 16:25 | 点击: 1486 | 展开摘要
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。

我不知道为什么这么多人用的都是这个逻辑,当我在微博上发了这个贴以后,我发现好些人给了好多非常复杂和诡异的方案,所以,

查看全文: http://shapenut.com/item/15697.html

+0  Docker基础技术:DeviceMapper

Tag: Unix/Linux | 操作系统 | 大发排列3 | Device Mapper | Docker | Linux | Thin Provisioning
陈皓 发于 2015年08月26日 08:21 | 点击: 2379 | 展开摘要
在上一篇介绍AUFS的文章中,大家可以看到,Docker的分层镜像是怎么通过UnionFS这种文件系统做到的,但是,因为Docker首选的AUFS并不在Linux的内核主干里,所以,对于非Ubuntu的Linux分发包,比如CentOS,就无法使用AUFS作为Docker的文件系统了。于是作为第二优先级的DeviceMapper就被拿出来做分层镜像的一个实现。

Device Mapper 简介

DeviceMapper自Linux 2.6被引入成为了Linux最重要的一个

查看全文: http://shapenut.com/item/14547.html

+0  Docker基础技术:AUFS

Tag: Unix/Linux | 操作系统 | 大发排列3 | AUFS | Docker | Linux | UnionFS
陈皓 发于 2015年08月24日 08:01 | 点击: 1885 | 展开摘要
AUFS是一种Union File System,所谓UnionFS就是把不同物理位置的目录合并mount到同一个目录中。UnionFS的一个最主要的应用是,把一张CD/DVD和一个硬盘目录给联合 mount在一起,然后,你就可以对这个只读的CD/DVD上的文件进行修改(当然,修改的文件存于硬盘上的目录里)。

AUFS又叫Another UnionFS,后来叫Alternative UnionFS,后来可能觉得不够霸气,叫成Advance UnionFS。是个叫Junjir

查看全文: 大发排列3网址

+0  Docker基础技术:Linux CGroup

Tag: Unix/Linux | 操作系统 | 大发排列3 | cgroup | Docker | Linux
陈皓 发于 2015年04月17日 09:03 | 点击: 2314 | 展开摘要
前面,我们介绍了Linux Namespace,但是Namespace解决的问题主要是环境隔离的问题,这只是虚拟化中最最基础的一步,我们还需要解决对计算机资源使用上的隔离。也就是说,虽然你通过Namespace把我Jail到一个特定的环境中去了,但是我在其中的进程使用用CPU、内存、磁盘等这些计算资源其实还是可以随心所欲的。所以,我们希望对进程进行资源利用上的限制或控制。这就是Linux CGroup出来了的原因。

Linux CGroup全称Linux Control G

查看全文: http://shapenut.com/item/14098.html

+0  Docker基础技术:Linux Namespace(上)

Tag: Unix/Linux | Docker | Linux | Mount | Namespace
陈皓 发于 2015年04月16日 10:20 | 点击: 1506 | 展开摘要
时下最热的技术莫过于Docker了,很多人都觉得Docker是个新技术,其实不然,Docker除了其编程语言用go比较新外,其实它还真不是个新东西,也就是个新瓶装旧酒的东西,所谓的The New “Old Stuff”。Docker和Docker衍生的东西用到了很多很酷的技术,我会用几篇 文章来把这些技术给大家做个介绍,希望通过这些文章大家可以自己打造一个山寨版的docker。

当然,文章的风格一定会尊重时下的“流行”——我们再也没有整块整块的时间去

查看全文: http://shapenut.com/item/14099.html

+0  Docker基础技术:Linux Namespace(下)

Tag: Unix/Linux | 操作系统 | Docker | Linux | Namespace
陈皓 发于 2015年04月16日 10:19 | 点击: 1655 | 展开摘要
在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD、IPC、PID、Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像。在这一篇中,主要想向大家介绍Linux的User和Network的Namespace。

好,下面我们就介绍一下还剩下的这两个Namespace。

User Namespace

User Namespace主要是用了CLONE_NEWUSER的参数。使用了这个参数后,内部看到的UID和GI

查看全文: http://shapenut.com/item/14100.html

+0  vfork 挂掉的一个问题

Tag: C/C++语言 | Unix/Linux | 操作系统 | fork | Linux | Unix | 大发排列3官网
陈皓 发于 2014年11月21日 00:48 | 点击: 2033 | 展开摘要
在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。

我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现这个问题放在那里好长时间,而挂在下面的几个答案又跑偏得比较严重,我觉得可能有些朋友看到那样的答案会被误导,所以就上去回答了一下这个问题。

下面我把问题和我的回答发布在这里,也供更多

查看全文: http://shapenut.com/item/13542.html

+0  State Threads 回调终结者

Tag: C/C++语言 | Unix/Linux | Web开发 | 程序设计 | C++ | coroutine | EDSM | IA | process | thread | Web
Leo 发于 2014年10月12日 22:48 | 点击: 3594 | 展开摘要
(感谢网友 @我的上铺叫路遥 投稿)

上回写了篇《一个“蝇量级”C语言协程库》,推荐了一下Protothreads,通过coroutine模拟了用户级别的multi-threading模型,虽然本身足够“轻”,杜绝了系统开销,但这个库本身应用场合主要是内存限制的嵌入式领域,提供原生态组件太少,使用限制太多,比如依赖其它调用产生阻塞等。

这回又替大家在开源界淘了个宝,推荐一个轻量级网络应用框架State Threads(以下简称ST),总共也就3000行C代码,跟Proto

查看全文: http://shapenut.com/item/13384.html

+0  bash代码注入的安全漏洞

Tag: Unix/Linux | 技术新闻 | 操作系统 | 大发排列3 | Bash | env | export | 安全 | 安全补丁 | 环境变量
陈皓 发于 2014年09月28日 07:56 | 点击: 2132 | 展开摘要
很多人或许对上半年发生的安全问题“心脏流血”(Heartbleed Bug)事件记忆颇深,这两天,又出现了另外一个“毁灭级”的漏洞——Bash软件安全漏洞。这个漏洞由法国GNU/Linux爱好者Stéphane Chazelas所发现。随后,美国电脑紧急应变中心(US-CERT)、红帽以及多家从事安全的公司于周三(北京时间9月24日)发出警告。 关于这个安全漏洞的细节可参看美国政府计算安全的这两个漏洞披露:CVE-2014-6271 和 CVE-2014-7169。

这个漏

查看全文: http://shapenut.com/item/13318.html
|<<<1234567>>>| 一共9页, 98条记录
返回首页