1分钟Linux性能分析
最近看ebpf相关技术,找到一篇2015年的老文,现在看依然不过时——原文。
当你为了性能问题而登录到Linux系统时,首先要检查哪些东西呢?
在奈飞有大量的Linux机器,并且有众多的工具去监控和分析性能。既包括负责整个云范围的监控工具Atlas,也包括单个实例分析的Vector。尽管这些工具帮助我们解决了很多问题,但是有些时候我们还是需要登录到实例上去执行一些标准Linux指令。
最近看ebpf相关技术,找到一篇2015年的老文,现在看依然不过时——原文。
当你为了性能问题而登录到Linux系统时,首先要检查哪些东西呢?
在奈飞有大量的Linux机器,并且有众多的工具去监控和分析性能。既包括负责整个云范围的监控工具Atlas,也包括单个实例分析的Vector。尽管这些工具帮助我们解决了很多问题,但是有些时候我们还是需要登录到实例上去执行一些标准Linux指令。
原文地址:这里,省略了一些非重点片段。
Open/Closed Principle(OCP,开闭原则)也不过多介绍了,一句话“对扩展开放,对修改封闭”。策略模式就是这一原则的一种实现。
原文地址:这里,省略了一些非重点片段。
The Single Responsibility Principle (SRP,单一职责原则)的文字定义这里我就不再次说明了,直接开始重点。
原文地址:这里,省略了一些非重点片段。
先定义一个结构体Pubsub
,客户端可以使用它来订阅、发布主题:
type Pubsub struct {
mu sync.RWMutex
subs map[string][]chan string
}
断断续续写博客居然有8年时间了啊……
5年前,博客从wordpress
迁移到了hexo
+github
静态页面,用着不错之后就一直懒得折腾。但五一假期想写博客发现安装nodejs
和hexo3
版本怎么也搞不定,看报错提示似乎是某些依赖库已经不支持老版本了,干脆一不做二不休整体替换成hugo
+Mainroad
主题。要不电脑里又得装python又得装golang还得装nodejs,也是麻烦。
大多数情况下,下划线_
都用于忽略函数返回值的情况。最近查看authboss
这个开源库的代码时,发现这样一种用法:
struct User {
...
}
var (
assertUser = &User{}
assertStorer = &MemStorer{}
_ authboss.User = assertUser
_ authboss.AuthableUser = assertUser
)