-
Life
中午和赛赛玩翻跟斗的游戏,前面没掌握好,一直把赛赛头朝下的时候就扔床上了,不过他觉得好玩,一直喊,再来再来。
昨天德州太晚了,搞到12点过后。还一边玩一边在看 skopeo copy image 遇到 EOF 报错的事。 只有往 ECR 其中一个 Region 复制的时候才报错,往其他 Region 或者是 ACR,都没问题。 今天开了一个 Case。
-
Life
看见工作上的事情就头疼。觉得好没劲。
今天好像啥也没干,处理了几个小 Case,什么磁盘满了,什么磁盘只读了,还有 neutron 转 Cilium。
然后统计了一下 Mirror 和 Hub 的相关数据。 现在到 Mirror 的请求约 20% 透传到后端,感觉这个效果还不错吧。
看了一下 temporal,这东西还要写 Go 或者 Java 代码来提交任务?还没有 API?这样的话,感觉有点不好用。
回家回家,头痛。
-
Life
昨天中午金桥聚餐,下午带赛赛去小姨家里。晚上去九亭饭店吃饭。
周末两天有点冷。
今天晚上要回来的时候,赛赛爬楼梯玩,把楼梯上放着笔记本和笔扔到了地上,我严厉的说,你去捡回来。他下去一边捡一边说,宝宝是小天使,以后不扔东西了。
晚上回来又同步了一下 OY 的镜像到 RB,后面就把 OY 下线了。
-
Macos Add Ip
ifconfig lo0 alias 127.0.0.2
-
Mirror Through To Backend Twice
问题1,一个打到 Docker Registry Mirror 的请求,为什么透传了两次到后端呢?
问题2,Proxy 里面的 inflight 又能起什么作用呢?
问题3,为什么有的机器把同一时间到来的所有请求都打到了后端,而有的机器只透传了非常少的几个请求,后面就走缓存了呢?
问题 1 回答,因为 pbs.copyContent(ctx, dgst, w) 里面请求了一次,pbs.storeLocal(ctx, dgst) 里面又请求了一次。
问题 2 回答,inflight 是为了避免两个同样的请求都 storeLocal 。
问题 3 Debug 方向:
- inflight 打印一下,看看哪哪请求进到里面?
- 本地调试,断点看一下 filesystem.GetContent 是哪里调用来的。
- pbs.serveLocal(ctx, w, r, dgst) 之前先 sleep random,拿一个小 Layer 来测试的时候,sleep 短的那个请求肯定已经完成了,所以只能会一次请求到后面。
-
拿大 Layer 来测,两个请求应该会一起透传到后面吧。
- filesystem.GetContent 是 Stat 的时候,需要先读取 link 内容,然后再去 stat link 文件。在
(bh *blobHandler) GetBlob -> desc, err := blobs.Stat(bh, bh.Digest)
里面有一次,然后再 serveLocal 里面又有一次。
之前问题 3 一直稳定复现的,但是加了一些 Debug 日志之后,这个问题复制不了了。。
-
Life
赛赛不咋理我了,让他亲亲,他直接说“不行”。
-
Return Copy From Map
package main import ( "fmt" "sync" ) func main() { m := map[string]sync.Mutex{} lock := sync.Mutex{} fmt.Printf("%p\n", &lock) m["baidu.com"] = lock get := m["baidu.com"] fmt.Printf("%p\n", &get) }
# go run a.go 0xc0000b2008 0xc0000b2020
-
Tty
登陆同一个机器,
root@1bd768a7944f:~# ps l F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 4252 3452 - Ss pts/0 0:00 bash 4 0 9 0 20 0 4252 3548 - Ss pts/1 0:00 bash 0 0 36 1 20 0 2660 520 - S+ pts/0 0:00 cat 0 0 37 9 20 0 5824 1152 - R+ pts/1 0:00 ps l
上面一台执行
cat
:root@1bd768a7944f:~# ps l F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 4252 3480 - Ss pts/0 0:00 bash 4 0 9 0 20 0 4252 3548 - Ss pts/1 0:00 bash 0 0 40 1 20 0 2660 584 - S+ pts/0 0:00 cat 0 0 42 9 20 0 5824 1144 - R+ pts/1 0:00 ps l
下面一台执行
date > /dev/pts/0
,上面一台出现日期,怎么理解?正常:
terminal -> pty master -> line discipline -> tty driver -> pty slave -> cat
日期这个??
pty slave -> tty driver -> line discipline -> pty master ?????
编译一下 script.c 来看一下 script 里面的 pty master 和 slave 都读到了什么。
-
Life
昨天赛小赛玩围棋,我拿手上一个棋子问他,这是几个,他说“一个”。
我拿两个再问他,他说“两个”。
我拿三个再问他,他说“太多了,数不了”。
哈哈哈
-
dockerd 里面使用 lz4 解压缩测试小结
线上 dockerd 版本: Docker version 19.03.12, build 48a66213fe
实验使用的 dockerd 版本:v20.10.9
目的
为了加速容器的启动,docker pull 做为其中的一环,调研一下如何加速 docker pull。
局域网环境问题下,docker pull 里面的解压的时间占了大头。Lz4 的解压速度比当前 Docker 默认的 gzip 要快不少,我们就在 Docker 里面实际测下看效果。