解决 Homebrew 下载更新极慢的问题
症状
使用 Homebrew 安装软件的时候一直卡在 Update 阶段。同时发现从 github.com 下载文件也极度缓慢(几十 KB/s)
问题定位
使用 brew update --verbose 观察 update 过程:
使用 Homebrew 安装软件的时候一直卡在 Update 阶段。同时发现从 github.com 下载文件也极度缓慢(几十 KB/s)
使用 brew update --verbose 观察 update 过程:
笼统地来讲,Java Agent 是一个统称,该功能是 Java 虚拟机提供的一整套后门。通过这套后门可以对虚拟机方方面面进行监控与分析。甚至干预虚拟机的运行。
Java Agent 又叫做 Java 探针,Java Agent 是在 JDK1.5 引入的,是一种可以动态修改 Java 字节码的技术。Java 类编译之后形成字节码被 JVM 执行,在 JVM 在执行这些字节码之前获取这些字节码信息,并且通过字节码转换器对这些字节码进行修改,来完成一些额外的功能,这种就是 Java Agent 技术。
从用户使用层面来看,Java Agent 一般通过在应用启动参数中添加 -javaagent 参数添加 ClassFileTransformer 字节码转换器。 在 Java 虚拟机启动时,执 行main() 函数之前,Java 虚拟机会先找到 -javaagent 命令指定 jar 包,然后执行 premain-class 中的 premain() 方法。用一句概括其功能的话就是:main() 函数之前的一个拦截器。
注:本次使用的client-go版本为:client-go 11.0,主要参考CSDN上的深入浅出kubernetes之client-go系列,建议看本文前先参考该文档。本文档为CSDN文档的深挖和补充。
本文中的visio图可以从这里获取
下图为来自官方的Client-go架构图
1 | pr, pw := io.Pipe() |
另外,私钥一般自己保存,只有自己知道;公钥则是公开的
OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
openssl可以实现:秘钥证书管理、对称加密和非对称加密。
Go 提供了 pprof 工具,可以用来做性能分析。pprof 可以读取分析样本的集合,并生成报告以可视化并帮助分析数据。
runtime/pprof:采集程序的运行数据进行分析,通过调用如 runtime.StartCPUProfile 或 runtime.StopCPUProfile 等 API 生成分析样本。主要用于本地测试。net/http/pprof:采集 HTTP Server 的运行时数据进行分析,通过 HTTP 服务获取 Profile 分析样本,底层还是调用的 runtime/pprof。主要用于服务器端测试。go test: 通过 go test -bench=. -cpuprofile cpuprofile.out … 生成分析样本,主要用于本地基准测试。
因为 TCP 的三只握手等等原因,建立一个连接是一件成本比较高的行为。所以在一个需要多次与特定实体交互的程序中,就需要维持一个连接池,里面有可以复用的连接可供重复使用。
而维持一个连接池,最基本的要求就是要做到:thread safe(线程安全),尤其是在 Golang 这种特性是 goroutine 的语言中。
用来限制容器对宿主节点的可访问范围,以避免容器非法操作宿主节点的系统级别的内容,使得节点的系统或者节点上其他容器组受到影响。
Kubernetes 提供了三种配置 Security Context 的方法: