HighWayToHell
花园里, 篱笆下
2023-08-13T10:38:15+08:00
Druggo
urn:md5:79dfcacdbfd6434dfc57423d51240051
Dotclear
apisix-dashboard etcd 踩坑记
urn:md5:34a0f3abbb4f937d8eb860dd7f345199
2023-08-13T18:30:00+08:00
2023-08-13T18:38:15+08:00
Druggo
计算机
apisixetcdhelm
<p>想用apisix做网关,先在测试环境开搞。</p>
<p>首先需要一套etcd,为了方便就用helm起了一套,顺便启用了tls,结果helm装apisix时遇到问题,etcd居然连不上,似乎证书认证支持有问题 <a href="https://github.com/apache/apisix/issues/5608#issuecomment-979587311" hreflang="en">ref1</a>, <a href="https://github.com/apache/apisix/pull/5640" hreflang="en">ref2</a>,只好先设置不检查证书(verify: false)。</p>
<p>接下来是apisix-dashboard,也连不上etcd,毕竟helm配置里都没有tls相关设置,但是软件本身是支持的,索性自己增加了tls配置,发现还是连不上,证书校验不过,想着也不检查证书吧,可惜软件还没支持,回头看下helm装的etcd是自动生成的自签证书,CN是固定的,只好用cfssl重新签了一套证书,把svc会用到的域名都写进去了,这下终于好了。</p>
<p>等到要上线的时候,想着就不自建etcd吧,腾讯云有提供etcd服务,直接买了,这下又坑了,默认的证书只有vip在SAN里,apisix还好可以不检查证书,但是dashboard又过不去了,这2个软件连etcd的行为不一样,前者只连vip,后者还会获取etcd节点信息然后全部都要连,只有vip在SAN里,那肯定通不过校验啊。</p>
<p>行吧,退掉重新买,这次记得填上了域名信息,以为用域名来连就万事大吉了。结果仍然是打脸了,vip连接没问题,各个节点连接居然还是一样的报错:</p>
<p><code>{"level":"warn","ts":"2023-07-26T10:55:32.904Z","logger":"etcd-client","caller":"v3@v3.5.5/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc00047ce00/10.0.1.95:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection error: desc = \"transport: authentication handshake failed: x509: certificate is valid for 10.0.1.95, not 10.0.1.145""}</code></p>
<p>这啥玩意啊,明明用的域名为啥还要拿IP去验证?看来dashboard连etcd节点并没有用域名啊,手工list member 看下,确实节点广播的都是IP地址。。。可是节点的证书SAN里只有vip和域名,可咋整?</p>
<p>又不想自建etcd,购买的也不支持自定义证书,想来想去,得让dashboard连节点时带上域名信息应该就可以通过证书检查了。</p>
<p>Go语言我不会啊,赶紧咨询ChatGPT,立即就给出了带域名的方法,说干就干,一通魔改,重新编译后替换二进制文件,哈哈,成功了!</p>
<p>顺便想起来到社区搜了一下,也有人遇到这个问题,但是始终没有修复,既然耗费我这么多时间,那就顺手提一个<a href="https://github.com/apache/apisix-dashboard/pull/2850" hreflang="en" title="feat: support sni and skipverify option for etcd tls">PR</a>吧,希望可以帮到有缘人。</p>
http://blog.druggo.org/post/2023/08/13/apisix-dashboard-etcd-%E8%B8%A9%E5%9D%91%E8%AE%B0#comment-form
http://blog.druggo.org/feed/atom/comments/295
maven构建加速
urn:md5:b08a824f6b617986a3acac04e440517b
2023-03-09T23:26:00+08:00
2023-03-09T23:34:58+08:00
Druggo
计算机
mavenmvnd
<p>研发同学希望加速构建过程以便更快的部署测试,并找来了官方软件 <a href="https://github.com/apache/maven-mvnd" title="maven-mvnd">mvnd</a>,直接用mvnd替换mvn命令即可,提速很明显,平均约30%,模块越多,提速越多。</p>
<p>下面是当前用的配置,为了稳定常驻后台,避免jenkins job跑完就退出,宿主机弄了定时任务,并发跑三个构建(空项目,就一个pom,内含sleep插件)就会启动好三个mvnd在后台待命。</p>
<pre>
mvnd.logPurgePeriod = 7d
mvnd.idleTimeout = 6 hours
mvnd.threads = 16
mvnd.minHeapSize = 1G
mvnd.maxHeapSize = 3G
mvnd.expirationCheckDelay = 60 seconds
mvnd.duplicateDaemonGracePeriod = 6 hours
</pre>
http://blog.druggo.org/post/2023/03/09/maven%E6%9E%84%E5%BB%BA%E5%8A%A0%E9%80%9F#comment-form
http://blog.druggo.org/feed/atom/comments/291
K8S的探针和优雅关机问题
urn:md5:ec98d42514c9eca572d0f18b9b9e2299
2023-01-08T22:45:00+08:00
2023-01-08T22:51:11+08:00
Druggo
计算机
graceful shutdownk8sliveness probestartup probe
<p>最近折腾起K8S来,顺便整理下遇到的问题。</p>
<p>首先是探针问题,早期版本只有存活探针(liveness probe)和就绪探针(readiness probe),这两个探针没有依赖关系,是同时开始探测的。我总想不明白,程序存活检测都没通过,为啥要浪费时间做就绪检查?等到新版本支持第三个探针:启动探针(startup probe),总算是没毛病了。
为什么要增加启动探针?我想到业务上有些程序启动确实太慢(比如几分钟),以前需要在存活探针加很长的延迟时间(delay),这个延迟其实不好设置,程序随着迭代可能启动更慢,导致需要在fail次数上容忍更多,fail次数更多导致程序运行时被重启的时间被迫也拉长了,这对服务故障恢复不利;又或者程序启动变快了,却又因为延迟是固定的,滚动更新时又白白浪费时间拖慢发布流程。
现在好了,设置启动探针后,只有等启动探针通过后,存活、就绪探针才会开始干活。这就解决了上面提的两个问题,只要启动成功就可以尽快开始服务,不需要像之前那样必须等一个写死的延迟时间;同时存活探针fail次数也可以设置更合理,以便在程序故障时尽快被重启。</p>
<p>另一个问题就是滚动更新时的优雅关机问题,实际情况就是程序开始关闭了,还有业务流量打到这个容器里,导致异常响应。这也很奇怪,K8S本身是知道关机事件的,应该可以提前切走流量才对。网上找到相关文章学习了下,原来是关闭容器开始,切流量和发送关闭信号给容器是同步进行的,但是发关闭信号非常快,而切流量过程本身链路较长(更新etcd,通知ingress,再变更iptables规则等等)实际是异步执行,这两件事之间有时间差,所以程序关闭了,流量还要延迟一会才会切走,导致用户遇到500。因此优雅关机要稳一点还需要在preStop里sleep一会,比如sleep 5,一般流量就切好了。关闭信号会在preStop执行完后发出。
我仔细看了下应用设置,发现preStop里就写了一句stop应用,难怪优雅不起来,流量还没切掉,就主动stop了,增加sleep后问题解决。</p>
<p>顺便又思考了下,为啥会在preStop里主动stop应用?明明K8S会发送关闭信号的啊,测试了下,发现应用没有关闭过程,只等30s超时后被SIGKILL。看来是关闭信号被忽略导致,这里就涉及到容器的init(1号)进程是否会传递信号了,回看应用设置,启动命令是sh,破案了,它不是一个合格的init进程,怪不得需要在preStop里写一个主动stop呢。如果要少写这个stop,可能需要把init程序换一个合适的轻量级init程序,比如<a href="https://github.com/krallin/tini" hreflang="en" title="tini">tini</a>。</p>
<p>ref:</p>
<p><a href="https://freecontent.manning.com/handling-client-requests-properly-with-kubernetes/" hreflang="en">https://freecontent.manning.com/handling-client-requests-properly-with-kubernetes/</a></p>
<p><a href="https://medium.com/@meng.yan/what-happens-when-deleting-a-pod-d1219c7e1b53" hreflang="en">https://medium.com/@meng.yan/what-happens-when-deleting-a-pod-d1219c7e1b53</a></p>
http://blog.druggo.org/post/2023/01/08/K8S%E7%9A%84%E6%8E%A2%E9%92%88%E5%92%8C%E4%BC%98%E9%9B%85%E5%85%B3%E6%9C%BA%E9%97%AE%E9%A2%98#comment-form
http://blog.druggo.org/feed/atom/comments/289
冲牙器杀手
urn:md5:1d28220b352f84b20efc42cb2c8c36ba
2022-05-02T01:19:00+08:00
2022-05-02T01:21:19+08:00
Druggo
生活
冲牙器
<p>很奇怪,不久前还用了一次,它就莫名其妙的坏了。
装好水,按开关没反应,灯是亮的,马达悄无声息。
想来想去,也没有不爱惜啊,这也罢工的太突然了。
中午吃的太渣了,很想冲一下,这下可好。
也许是没电了吧,放到充电座上,嗯?充电指示灯不亮了。
有些意外,以前没电的话会闪烁的,这回完全不亮,算了,充一晚上再说。
早上起来第一件事就是打开冲牙器,很遗憾,没用。</p>
<p>看来是真的坏了。
翻出说明书,只保修一年,早过了。
可牙缝里的渣滓还在提醒我,要冲啊,火速下单。
哎,这疫情期间等个快递是真心焦。
好在物流没有中断,拿到后畅快一冲,哈哈哈。。
但,没用几次,新家伙也罢工了,一样的是马达悄无声息。</p>
<p>我开始怀疑起来。
这冲牙器到底什么设计,怎么能就这么突然死去,毫无征兆?
好吧,新的只能先找售后换了,再坏那就退货。</p>
<p>看那旧冲牙器,外形光滑,无线充电,还是满不错的。
就是突然死机不动是怎么回事?好看也不顶用,拆!
端详了半天,愣是没找到螺丝孔,难道只能来硬的了?
感觉水箱是不是可以拿下来?使劲居然真拔出来了!
气愤,一直以为是一体设计,每次灌水还不太方便,没想到。。
行了,水箱分离,上方露出2个螺丝,拧下,头部就可以打开了。
顶部也有螺丝,拧下,目测机体可以整体拔出来,但是很难动。
看来底部有玄机,无线充电口,有2个凹陷的圆片,挑出来后露出螺丝。
底盖移除,机体终于可以抽出来了。</p>
<p>好家伙,本体还是很干净的,但马上就看到中间的马达了,锈的一塌糊涂。
原来是锈死掉了。是设计问题吗?其他部件都很好啊,虽然也有一些水分残留。
有同事和我一起买的,现在用的还好好的呢。
左思右想,恐怕是近两年我用的次数太少了,导致残留水分可以长时间腐蚀马达。
如果每天都用,马达自身热量可以有效蒸发掉水分就不会坏的这么快了。</p>
<p>那我新买的怎么也坏这么快?这不科学。</p>
http://blog.druggo.org/post/2022/05/02/%E5%86%B2%E7%89%99%E5%99%A8%E6%9D%80%E6%89%8B#comment-form
http://blog.druggo.org/feed/atom/comments/285
遍插茱萸少一人
urn:md5:7a3ac5297fa8cbbff4c4b2f3ef2e6188
2022-04-13T01:47:00+08:00
2022-04-13T01:47:48+08:00
Druggo
生活
<p>因为疫情过年不能回家,一个小学同学联系到我,发过来一张“我们”的小学毕业照。
嗯,非常诡异,里面竟然没有我,可能拍照那天我请假了吧。</p>
<p>当我们一一回忆起相片中每个人的名字时,不禁悲伤的发现有人已经不在了。
《寻梦环游记》里说只有世上没人记得你,你才会真正消失不见。
不知是否来得及,我要记一记。</p>
<p>儿时的玩伴D,我这辈子唯一能记得上床倒头就可以入睡的,就是我们相约早起去跑步的那段时间。我破天荒起的最早,天蒙蒙亮,穿好球鞋系好鞋带,跑去你家。可能天有点冷,你没有在门口等,我喊你的名字,你爸妈听见了,赶紧唤你起床。睁了几次眼睛还有些睡意的你出来,我们顺坡下到球场,在通往学校的十字路口我们走过水泥桥从田边的泥巴路开始跑向江边。
我不记得我们是怎么回来的。二十年后才有你的消息,你成了植物人的消息。</p>
<p>小学同学L,那次春游的照片我们站在一起,你脖子上挂满了纪念品,而我啥也没有。因为晕车,我吐了一路,到了地点头晕脑胀的我只能找条石凳躺着,可能快结束时还是走了一下,记得有一个人人都投硬币进去的池子,真是有够好笑的。你常带着弟弟一起出来玩,分我萝卜丝吃,特别辣的那种,好像是一毛钱一两。大概你家好玩的东西多,我总到你房间里去玩,央求你给我一件,始终没有得逞,又或是耐不住给了我一把火药枪,铜的有些精致,但是个坏的。你老是戴一个毛线帽,有帽檐还可以罩住脸只露眼睛的那种,还挺羡慕的,我咋就没有?现在想起来戴着更像一个土匪吧。到市里上高中后,我们没什么联系。W告诉我,你下班回家睡过去后就没有醒过来。</p>
<p>高中校友C,虽然不是一个班的,但我知道你,常常在篮球场上挥洒汗水,一个个胖胖的女生。你班的同学后来说起你没有参加高考,因为体检时发现得了白血病。我无法理解,好好的一个人,怎么刚查出病,人就垮了呢?几年后想起来再问,说人应该没了。可能是从这里开始,我有些害怕体检了,好像只要不知道的话,就可以好好的活着。</p>
<p>大学班长G,很阳光的一个人,在军训的时候得罪了班上某些小团体,结果被这群人发起联名信要你下台,当然我没有签,我可太知道这些人是什么货色了。那些后来看起来也似乎是友善的面孔,当时是那么狰狞。最终他们成功了。你黯然下去,整个四年没怎么和同学来往。毕业后不久传来你得脑瘤的消息。虽然班级同学也代表去看望过你,遗憾的是,你没有挺过来。我总觉得这和黯淡的四年有说不清道不明的干系。</p>
<p>还有Z老师,L同学,我还记得你们。</p>
http://blog.druggo.org/post/2022/04/13/%E9%81%8D%E6%8F%92%E8%8C%B1%E8%90%B8%E5%B0%91%E4%B8%80%E4%BA%BA#comment-form
http://blog.druggo.org/feed/atom/comments/284
终于还是戴上眼镜了
urn:md5:3c6cf18ff884f4b592bb8400c2f05646
2020-12-23T00:07:00+08:00
2020-12-23T00:13:15+08:00
Druggo
生活
散光眼镜近视
<p>撑不下去了。</p>
<p>最近眼睛疲劳的好快,开始以为是没睡好,或者用眼过度,直到我戴上人生第一副眼镜,过份清晰了啊!一整天眼睛都不累!</p>
<p>其实以前我说看远处的字会重影,就有人告诉我是散光,但我以为散光并非近视,没有考虑去配眼镜,谁知道这散光都是近视给害的越来越深。
为啥不想去配眼镜,除了麻烦,还有一个传统迷思,觉得戴上眼镜后,度数会越来越深,身边这种例子很多。早在刚上高中的时候,宿舍同学借了一副大概100度的眼镜给我也试了下,看远处确实更清晰,他就下结论说我近视了,该配眼镜,我不屑一顾,后来同学他配了,然后涨到600度。现在知道这迷思是错误的,会不会加深在于用眼习惯是否纠正了。</p>
<p>按说高中视力还好啊,体检总是1.5,没日没夜的通宵打游戏也没事,而且当时还都是球面显示器。在宿舍里看漫画看到双眼流泪都不停下来,感觉怎么造都没搞坏眼睛啊。到了大学上大课看不清黑板自觉是正常情况,远处的字需要用手窝个小孔才看清,光圈小点就能看清,心想眼睛还是好的。万万没想到,这是散光,痛惜空有互联网,居然没有查一下散光是怎么回事。遇到看不清就会用力咪眼睛,甚至有一次看到哪里说轻微近视可以自己训练下给纠正回来,结果导致散光越来越厉害。。,现在电脑字体,手机字体我都调的贼大。多亏了公司组织了现场免费验光,我才发现,确实近视不高,但是散光已经突破天际。</p>
<p>要说自己有啥后悔的事,没有早点去配个眼镜就是。</p>
http://blog.druggo.org/post/2020/12/23/%E7%BB%88%E4%BA%8E%E8%BF%98%E6%98%AF%E6%88%B4%E4%B8%8A%E7%9C%BC%E9%95%9C%E4%BA%86#comment-form
http://blog.druggo.org/feed/atom/comments/276
KVM云主机高负载之二
urn:md5:06fa5b3e4ada1c63049562c182be9963
2020-03-21T13:31:00+08:00
2020-03-21T13:46:56+08:00
Druggo
计算机
hugepageskvmlinuxperformanceqemutransparent_hugepage
<p>一个上线不久,没什么访问量的网站,突然收到用户反馈说页面经常打不开,或者能打开,但是要等十几秒,卡顿非常严重,几乎无法正常使用了,自己人测试下也是相同的表现,看来问题在服务端,排除了网络影响后,就是后端有什么问题了,奇怪的是,并没有任何指标报警啊,服务器一切正常,研发表示也没有啥特别改动,程序日志也很正常。</p>
<p>因为卡顿情况存在,肯定有一个环节请求响应慢了,跟踪下来发现所有卡顿都是同一台云主机,检查监控指标,并不算高,但是看起来会比其他主机上的应用多吃一些CPU,重启应用无效,等手工迁移应用到其他云主机,卡顿问题立即消失,虽然不愿意承认,但是大家觉得云主机的宿主机是不是有什么问题,请厂商帮忙检查,结果是没有问题,一度陷入僵局。</p>
<p>经过仔细对比监控记录,发现有问题的主机上应用在凌晨闲时CPU占用率突然从2%提高到5%,而其他主机上应用一直是2%,我们把怀疑宿主机的依据给到厂商,虽然厂商觉得他们没问题,但是还是愿意帮忙做一下云主机的热迁移。好在热迁移后,问题立即消失,厂商表示不可思议,要求再迁移回来,问题马上复现,经过多次来回检验,厂商终于给出问题可能的原因:透明大页不足,导致分配到了小页,造成虚拟机性能下降。</p>
<p>透明大页完全依赖操作系统分配,如果内存不够富裕,碎片严重就可能无法分配到透明大页(transparent_hugepage),而被分配小页,造成虚拟机页表地址转换开销加剧,性能自然受影响,但是差到这个程度,也是出乎我的意料。难怪很多软件都要求禁用透明大页,可见确实是潜在的性能杀手。</p>
<p>最后解决方案,就是不要使用透明大页,直接使用大页(hugepages),qemu参数 -mem-path 指定即可。</p>
<p>大页是内核支持的预分配内存,一旦分配就从内存统计里消失,和透明大页是完全不同的,具体可以参考内核文档:</p>
<p><a href="https://www.kernel.org/doc/Documentation/vm/transhuge.txt">https://www.kernel.org/doc/Documentation/vm/transhuge.txt</a></p>
<p><a href="https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt">https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt</a></p>
http://blog.druggo.org/post/2020/03/21/KVM%E4%BA%91%E4%B8%BB%E6%9C%BA%E9%AB%98%E8%B4%9F%E8%BD%BD%E4%B9%8B%E4%BA%8C#comment-form
http://blog.druggo.org/feed/atom/comments/275
捡到一次PHP性能提升的机会
urn:md5:1fc4005f21e17375cc5c9d6f339e6c60
2020-03-15T19:05:00+08:00
2020-03-15T19:16:20+08:00
Druggo
计算机
cve-2006-5178open_basedirperformancephpsymlink
<p>PHP的程序并发稍微高一点就慢的不行,sys 消耗出奇的高,除了太慢被切换,平时 strace 总能发现php进程疯狂的stat文件,之前查的不是性能问题,就没有深究。</p>
<p>如果正在使用 open_basedir ,那么好消息,一次性能提升的机会来了;最近考虑升级到7.4,性能可能会好点,结果在更新配置文件的时候突然发现 open_basedir 有一行提示:Note: disables the realpath cache, 天!难怪stat这么多,搜索一通,找到 <a href="https://bugs.php.net/bug.php?id=52312" hreflang="en" title="PHP safe_mode/open_basedir - lstat performance problem">Bug #52312</a> ,没想到的是,这个禁用从5.2时代就开始了,但是这个禁用的提示到7.2才写出来,坑人! 禁用的原因是安全问题 CVE-2006-5178 ,open_basedir 绕过漏洞。</p>
<p>明白原因后,有两种处理方法:第一种,就是不用 open_basedir 了,虽然官方说这个是解决多租户隔离问题的,实际上在别的场景还是有积极意义的,直接关闭确实不太让人好接受;那么第二种办法的话,就是修改源码,注释掉这段逻辑(<a href="https://github.com/druggo/druggo-overlay/blob/master/patches/dev-lang/php/php-74-realpath-cache-openbasedir.patch" hreflang="en" title="enable realpath cache while open_basedir set">patch</a>),同时<strong>保证禁用危险函数</strong>:</p>
<p><q>disable_functions = symlink,link</q></p>
<p>随便测试了几个页面,差不多能获得 20% - 100% 不等的性能提升,大概和包含的文件数量有关系,同时 sys 几乎降到之前的一半了,可以!</p>
http://blog.druggo.org/post/2020/03/15/%E6%8D%A1%E5%88%B0%E4%B8%80%E6%AC%A1PHP%E6%80%A7%E8%83%BD%E6%8F%90%E5%8D%87%E7%9A%84%E6%9C%BA%E4%BC%9A#comment-form
http://blog.druggo.org/feed/atom/comments/274
KVM云主机高负载之一
urn:md5:44a9d9ce4a4996bb3a5790e84260f561
2020-01-20T01:09:00+08:00
2020-01-21T00:51:48+08:00
Druggo
计算机
high loadkernelkvmlinuxqemuubuntu
<p><a href="https://github.com/torvalds/linux/commit/afa8b475c1aec185a8e106c48b3832e0b88bc2de" hreflang="en" title=" x86/timer: Force PIT initialization when !X86_FEATURE_ARAT "></a></p> <p>最近升级了一些Ubuntu的云主机内核,发现系统负载比未升级前高很多,但是物理机升级到此版本则没有问题。</p>
<p>一台跑了7个java程序的云主机,升级前负载基本在1左右,升级后负载跑到7左右,但是CPU基本是一点也不高,回滚内核版本一切又正常了。</p>
<p>经过多次实验,发现官方几个版本内核确实存在问题:</p>
<pre>
4.15.0-70 GOOD
4.15.0-72 BAD
4.15.0-73 BAD
4.15.0-74 BAD
5.0.0-36 GOOD
5.0.0-37 BAD
</pre>
<p>以上测试用一台新云主机啥也不跑,GOOD内核负载0.00左右,BAD内核负载 0.6左右。</p>
<p>尝试安装主线内核 5.4.6-050406,结果是GOOD,可见问题主线内核已经修复掉了。</p>
<p>再尝试官方的HWE内核 5.3.0-24 结果还是GOOD,解决,基本可以收工了。</p>
<p>实际上最近云主机负载问题还有一起(下回说),厂商正在排查,我想既然找到具体版本,不如查一下是哪个补丁的问题吧。</p>
<p>先多找了两家大厂测试,发现问题可以重现,应该不是个别厂商的虚拟化平台问题,翻了下开始出问题的内核补丁,太多了,这块也不熟悉,
干脆两分法逐一排查,经过几十次的内核编译重启,最终找到引入问题的补丁:
<a href="https://github.com/torvalds/linux/commit/c8c4076723daca08bf35ccd68f22ea1c6219e207" hreflang="en" title=" x86/timer: Skip PIT initialization on modern chipsets ">x86/timer: Skip PIT initialization on modern chipsets</a></p>
<p>然后以此为突破口找到了修复补丁:
<a href="https://github.com/torvalds/linux/commit/afa8b475c1aec185a8e106c48b3832e0b88bc2de" hreflang="en" title="x86/timer: Force PIT initialization when !X86_FEATURE_ARAT">x86/timer: Force PIT initialization when !X86_FEATURE_ARAT</a></p>
<p>真相大白,QEMU/KVM才会中招,一开始我还觉得是厂商热补CPU bug导致的:)</p>
http://blog.druggo.org/post/2020/01/20/KVM%E4%BA%91%E4%B8%BB%E6%9C%BA%E9%AB%98%E8%B4%9F%E8%BD%BD%E4%B9%8B%E4%B8%80#comment-form
http://blog.druggo.org/feed/atom/comments/273
无题圣诞
urn:md5:5a22ed3b9828abb05403b9cacdce5362
2019-12-26T00:52:00+08:00
2019-12-26T00:55:18+08:00
Druggo
生活
圣诞教堂游戏厅
<p>对于中国人来说新年才是节日,圣诞也不放假,有个锤子用?
我大概是高中时开始感受圣诞,因为学校旁边有一个小教堂。当时是住校生,没人管的那种,经常晚上跑出去玩,记得有天照例去游戏厅,老远就看到教堂那挤满了人,那大概就是圣诞了,人多到路口几乎堵上,真不知道这帮人寒冬里挤在门口等什么?听说是12点会开门,进去能拿礼物? 大概就是附近凑热闹的人吧,尽在这挡路,现在想想,莫非真有这么多信徒?可是信徒应该早就可以进去教堂了吧,跟这水泄不通的堵着门口只是想来占便宜的吧。我打完游戏回来,嘿,这帮人还没散,都快12点了。真的每年都差不多,可能越往后的圣诞人越多,后来都传说人太多,教堂也不敢开门,估计是怕庙小被冲垮了,哈哈。</p>
http://blog.druggo.org/post/2019/12/26/%E6%97%A0%E9%A2%98%E5%9C%A3%E8%AF%9E#comment-form
http://blog.druggo.org/feed/atom/comments/271
放弃 btrfs zfs
urn:md5:fd2cf48655e3cb405a0e4a97b9db56bf
2019-12-07T20:41:00+08:00
2019-12-07T20:46:54+08:00
Druggo
计算机
btrfslinuxquotaubuntuzfs
<p>先说 zfs,Ubuntu 16.04 (4.4内核)开始集成,几乎每个月都会遇到高IO挂起问题,升级到 18.04 (4.15内核)后解决,但是要命的问题:不支持docker。</p>
<p>再说 btrfs,磁盘限额功能有<a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1765998" hreflang="en" title="FS access deadlock with btrfs quotas enabled">缺陷</a>,必须关闭quota,否则就是定时炸弹一枚,
最最糟糕的是IO性能随时间急剧下降(跑docker,也就几千个subvolume),可能是CoW导致的碎片太严重?滚一滚日志都能让负载上天。
网上查下,说最好定期跑跑balance,但是跑的太慢,对IO影响也很厉害,遂 ctrl+c 中断之,结果文件系统只读了。。</p>
<pre>
[7296807.472310] BTRFS: error (device sda2) in btrfs_drop_snapshot:9489: errno=-4 unknown
[7296807.482555] BTRFS info (device sda2): forced readonly
[7296807.482557] BTRFS: error (device sda2) in merge_reloc_roots:2429: errno=-4 unknown
[7296807.493321] BTRFS info (device sda2): balance: ended with status: -30
</pre>
<p>没法remount,rw ,只能全关了,卸载,再挂载,太可怕了,还是老老实实用 ext4 吧。</p>
<p>不过用作备份存储和NAS,这两应该问题不大,特别是 zfs 那是相当稳定,毕竟快照是真好用!</p>
http://blog.druggo.org/post/2019/12/07/%E6%94%BE%E5%BC%83-BTRFS-ZFS#comment-form
http://blog.druggo.org/feed/atom/comments/270
苹果系统升级后证书不信任问题
urn:md5:0d06134aadcd62b0f7e85c74b49c6287
2019-10-18T20:59:00+08:00
2019-10-18T21:01:20+08:00
Druggo
计算机
10.15httpsmacosssl
<p>同事升级苹果系统到最新的10.15导致内部系统证书提示无效,换火狐浏览器就没问题(还是火狐好!)。</p>
<p>查了半天,发现是苹果新系统对证书有效性校验的更严格了:<a href="https://support.apple.com/zh-cn/HT210176" hreflang="zh" title=" iOS 13 和 macOS 10.15 中的可信证书应满足的要求"> iOS 13 和 macOS 10.15 中的可信证书应满足的要求</a></p>
<p>看到最后,就是新规定要求2019年7月1号以后签发的证书有效期不能超过825天(两年多一点),我们内部证书都好几年的,刚好签发日期在时间点之后,那么干脆重新签发证书,把签发时间提到6月份就好了。</p>
<p>PS, 这是苹果唯一值得称道的点,安全性。</p>
http://blog.druggo.org/post/2019/10/18/%E8%8B%B9%E6%9E%9C%E7%B3%BB%E7%BB%9F%E5%8D%87%E7%BA%A7%E5%90%8E%E8%AF%81%E4%B9%A6%E4%B8%8D%E4%BF%A1%E4%BB%BB%E9%97%AE%E9%A2%98#comment-form
http://blog.druggo.org/feed/atom/comments/269
《我11》
urn:md5:5151bbe29668415bd24dab381fcfa78f
2019-10-08T00:09:00+08:00
2019-10-08T00:10:57+08:00
Druggo
电影
三线建设国产片童年豆瓣
<p>得了,豆瓣也关张了,咱只能在自留地里玩了。</p>
<p>又看了一部三线建设相关电影,《我11》,完美复现我的童年啊,厂矿子弟可以看个情怀,别的就不推荐了。</p>
<p><img src="http://blog.druggo.org/public/pic/.wo11_m.jpg" alt="wo11.jpg" title="wo11.jpg, Oct 2019" /></p>
http://blog.druggo.org/post/2019/10/08/%E3%80%8A%E6%88%9111%E3%80%8B#comment-form
http://blog.druggo.org/feed/atom/comments/268
噢,1997快点儿到吧
urn:md5:0418fabf8ac2484f083cac646b698f69
2019-10-06T14:29:00+08:00
2019-10-06T14:35:26+08:00
Druggo
生活
我的1997香港香港简史
<p>想讨论一下香港,才发现自己其实对香港一无所知,</p>
<p>清晰的知道1997回归中国,说不定还是因艾敬的这首《我的1997》,</p>
<p>那时我才小学毕业,这首歌大街小巷都在放,唱的让人对香港有无限的遐想和希望。</p>
<p>除了鸦片战争、不平等条约、殖民地以外,就是武打警匪片、四大天王、美女俊男,香港到底是一个什么样的地方,又到底经历过什么,让它变成现在的模样?</p>
<p>豆瓣上看到友邻推荐《香港简史》,是该补一补课了,国内没有出版,所幸可以直接在谷歌图书买到电子版,</p>
<p>是繁体字,看着略微不习惯,基本上没有障碍,趁着假期终于看完了。</p>
<p>书里可以找到曾经听说过的各种关于香港的破碎信息如何拼合,还有你完全陌生的历史进程,</p>
<p>香港的每一个变动,都和世界局势息息相关,如果真的想了解香港,这本书非常值得一读。</p>
http://blog.druggo.org/post/2019/10/06/%E5%99%A2%EF%BC%8C1997%E5%BF%AB%E7%82%B9%E5%84%BF%E5%88%B0%E5%90%A7#comment-form
http://blog.druggo.org/feed/atom/comments/267
cacti 64bit counter need snmp v2
urn:md5:baaf7763a62b7269d5c456e15985bbdf
2019-10-02T14:58:00+08:00
2019-10-02T14:58:54+08:00
Druggo
计算机
64bitcactisnmp
<p>cacti里绘图的网卡带宽超过100M后,需要使用64位计数器,否则图都是错误的,
换64位后,snmp版本至少使用v2,否则取不到数据。害我查半天。</p>
http://blog.druggo.org/post/2019/10/02/cacti-64bit-counter-need-snmp-v2#comment-form
http://blog.druggo.org/feed/atom/comments/266