思维误区就是我们思考中常常被无意忽略的东西,也被称作思维定势。思维误区不一定是坏的,因为它是我们大脑中的一种机制,它会有意放过它认为不重要的东西,从而把精力放在重要的东西上面。它的问题是它放弃的部分不一定是不重要的,而可能只是它以为不重要的。
最近发生的两件事,让我今天想起来要提一下这个思维误区。
一个是网上看到的,说某小区的业主,发现自己的电动车新买了没多久,续航就越来越短。充满电了,也只能跑20-30公里。一开始他们以为是天气变冷的缘故。后来他们以为是电池质量不行,有的就去找当初买电动车的商家理论,有的干脆换了新电池。但是换了之后,还是不好用。最后真相大白,又问题的是充电桩。充电桩是有充电桩的厂家免费提供的,这些厂家不仅要在安装前给物业一笔钱才能进入安装,安装之后,业主使用时交的费用还要分给物业一大部分,因此,这些厂家都是使用质量最差的充电桩,还会在充电机费上做手脚。比如说充了1度电,实际上只有0.16度。而快要充满时,就故意使用涓流充电。这样计费充电时间又能多出1、2个小时。
另外一个是发生在我自己身上的。一直以来,我在Ubuntu上跑的trojan服务总是不太稳定。在排除了一些其它问题之外,我发现这个trojan本身存在内存泄漏。也就是运行一段时间之后,它的内存占用会越来越高,同时客户端与它的连接都不再可用,测速永远都是超时。我花费了很多时间在研究服务器端的配置,从SSL证书,到连接数,从nginx的配置,到DNS的缓存,全都研究了一个遍。最后确定到内存泄漏的时候,我卡住了。因为我当时认为这是因为Trojan的代码太过古老,而Ubuntu 22.04是它代码停止更新两年后才有的新系统,所以二者可能存在某种兼容的问题。我忽略掉了,客户端的访问方式,可能是因为它内存泄漏的这种可能。可能,是我之前从来没有遇到过吧。并且,客户端和服务器端是分离的,因此我询问AI的时候,AI也没有想到。
之所以,我最终会怀疑到客户端的身上。一是上面提到的第一个故事。二是经过上面的长期分析,总结,我已经完成了一套检测方式,我开始每两分钟在服务器检测一次trojan的状态,发现内存泄漏就重启服务,短时间出现多次内存泄漏,干脆就重启一次服务器。这样的话,如果内存是泄漏是随机的。我应该很少能碰到网络不通的情况了,因为大部分情况都应该在我没有使用的时候就自动解决了。因为我以为每次系统重启之后,能够好用很久。但是,事情却刚好相反。我几乎每次长时间不使用macOS之后,再次进入,都会遇到超时的问题。同时,我跑到服务器看日志,问题的出现和我的macOS的使用高度相关。并且,到了最近,问题更加严重,如果macOS开着,服务器就算重启,还是会立刻内存泄漏。
到了这个地步,问题就很明显了。我在macOS端关掉FlClash,那边就立刻不泄漏了。而我另一台使用Clash Verge客户端的却没有这个问题。于是我设置它允许局域网访问,然后我这台就不开FlClash了。手动开启代理到居于网的服务区,暂时使用共享的方式。
我同时向FlClash提交了Issue。