又是新的一年,记录一下去年碰到、但尚未解决的问题。
悬而未决 🔗
fsync(2) 🔗
假设有以下代码:
int fd1, fd2;
fd1 = open("file", O_CREAT|O_RDWR);
do_write(fd1);
close(fd1);
fd2 = open("file", O_CREAT|O_RDWR);
fsync(fd2);
fsync(fd2)
会回写因 fd1
而写入的脏页吗?打了个赌,输了一碗面。
docker stop 🔗
某些容器进程在执行 docker stop
后较长时间才退出。然而一顿跟踪后,发现容器内的 =init(1)= 其实在一到两秒内已经正确退出了,但是TaskExitEventTopic
信号的发布却晚了好几秒。
pwritev2(2) 🔗
某些情况下,节点上的 pwritev2(2)
耗时会增加一个数量级,而 libaio
则表现正常。
- 异常节点上,单线程做
pwritev2
耗时正常; - 正常节点上,无论单线程、多线程,
pwritev2
耗时都正常; - 异常节点的 Q2G 平均开销接近正常节点两个数量级,最大 D2C 多了 65% 左右。
乙酰唑胺 🔗
看了一下为啥这个治疗开放青光眼的药物会被拿来治疗高山症。根据维基百科上的描述,机理如下:
-
乙酰唑胺会抑制肾脏重新吸收碳酸氢盐(碳酸的共轭碱)的能力,从而会增加尿液中碳酸氢盐的排出量,导致血液酸化。
-
身体透过血液 pH 值间接感知二氧化碳浓度,而 pH 值降低被身体当作是二氧化碳增加的结果,这会导致身体增加每分钟通气量(每分钟呼吸的空气量), 以"呼吸排出"二氧化碳,因而增加血液中的氧气量。
所以,提前服用乙酰唑胺会起到提前让身体进入高原状态的部分适应过程。最好是在前往高海拔地区的前一天即开始,并持续在高海拔地区逗留的头两天中使用。
所以,保持匀速深呼吸时,基本上可以看到血氧指标会变高。
不知道是药物的影响,还是高原锻炼的影响,回到平原后前三天晚上的 HRV 值分别是:74ms, 69ms, 73ms 比我的正常平均 HRV 指标高了 10ms 左右。