Recap

· 641 words · 2 minute read

又是新的一年,记录一下去年碰到、但尚未解决的问题。

悬而未决 🔗

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% 左右。

乙酰唑胺 🔗

看了一下为啥这个治疗开放青光眼的药物会被拿来治疗高山症。根据维基百科上的描述,机理如下:

  1. 乙酰唑胺会抑制肾脏重新吸收碳酸氢盐(碳酸的共轭碱)的能力,从而会增加尿液中碳酸氢盐的排出量,导致血液酸化。

  2. 身体透过血液 pH 值间接感知二氧化碳浓度,而 pH 值降低被身体当作是二氧化碳增加的结果,这会导致身体增加每分钟通气量(每分钟呼吸的空气量), 以"呼吸排出"二氧化碳,因而增加血液中的氧气量。

所以,提前服用乙酰唑胺会起到提前让身体进入高原状态的部分适应过程。最好是在前往高海拔地区的前一天即开始,并持续在高海拔地区逗留的头两天中使用。

所以,保持匀速深呼吸时,基本上可以看到血氧指标会变高。

不知道是药物的影响,还是高原锻炼的影响,回到平原后前三天晚上的 HRV 值分别是:74ms, 69ms, 73ms 比我的正常平均 HRV 指标高了 10ms 左右。

comments powered by Disqus