2012 年的一个沮丧的傍晚,我猛然意识到自己正在陷入一个 5km 魔咒:只要跑到 5 公里,无论是快是慢,左膝盖外侧总会开始疼痛;停下来就会缓解,一开跑马上又发作。
我猜这锅得让前几年的骑行来背。现在回想起来那时候也就是瞎骑,毫无训练科学可言。骑行时发力模式多半存在问题,积劳成疾。当然我们这代人的体育教学大家都懂的,如果不是从小就喜欢活动、有长期的运动爱好,体能素质多半都是渣渣,运动常识基本为零。
当时中文互联网上运动方面的信息还不多,最后是通过 BBS 看到华山医院运动医学科发表的一篇文章,才判断自己很可能是髂胫束摩擦综合征。那篇文章也介绍了好几种康复训练手段,主要是放松拉伸髂胫束,以及用自重及弹力带锻炼臀中肌及股四头肌。当时有一阵子一大早到公司健身房,先慢跑半小时,然后把这篇文章里面的动作过一遍,最后瞎鸡巴练几组哑铃,结束洗澡。如是坚持了几个月,魔咒依旧。寻思着自己是不是跑步姿势不对,又找了不少跑步姿势和辅助训练的文章,一一试过,并没有改观。现在看来,这个训练大方向是对的,只是过于保守不够强力。
到了 14 年,实在是担心自己是不是就这么废了,那时候还很不喜欢看医生的我毅然决然地踏入著名黑店曙光医院浦东分院。对着核磁共振报告,从头到尾碰都没碰过我膝盖的医生,一句“多休息就好”把我给打发走了。好吧,休息就休息呗,就这么完全休息一点都不运动持续了好几个月,还是突破不了魔咒。
13/14 年运动方面的内容开始在网上升温,尤其是知乎出现很多质量很高的内容,还有像高科、陈伯龄这样乐于分享的大神。关注了挺长一段时间之后,开始觉得运动还是有点儿门道在里面,自己挺难琢磨明白。到了 15 年实在是坐不住了,简单人肉下,发现大佬里的谢奕伟(蟹老板)和揉王丸(毛哥)就在上海开的馆子,叫轻重健身工作室,于是果断联系蟹老板。了解了我的情况之后,蟹老板直接表示毛哥更有经验,于是我就这么和毛哥勾搭上了。
第一次来到轻重的时候,不知道哪位是毛哥,前台教练往边上一指,“喏那就是毛哥”。我顺着抬头望去,只见一“发福”大叔葛优瘫坐在角落里玩手机,心里暗想这应该是管理员大叔吧。在得到前台的再次肯定的眼神之后,才敢确认这位真的是毛哥本尊。当时毛哥让我做了几个测试动作之后,就帮我上上下下分析了一番,虽然只记得什么前深线紧张之类的,但已是彻底折服,感觉遇上大救星。事实证明毛哥确实是大救星,跟着毛哥训练才知道自己原来全身那么弱鸡那么老僵。当时是每周找毛哥一次,其他时间自己跟着《无器械健身》训练,谈不上进步神速但也能感觉到明显的变化。这段时间主要是肌群的激活,重新找回该有的发力感。
9 月份抛下毛哥参加了蟹老板的大众健身培训班,讲解内容很全面,包括健身基本常识、体态评估、主要器械和徒手训练动作、训练手段训练计划这些,基本就是教练培训大纲了,每节课再带领大家做一些循环训练。虽然很多内容书上都了解了,听蟹老板重新梳理一遍收获还是很大,知道了重点之后平时遇到训练的问题大多能有基本的判断。这段时间试了几次 5 公里跑,还是有点不舒服,也没敢继续跑下去。
后来 10 月份又找毛哥练了几次,感觉自己上道了,后面两年就自己折腾为主,只是偶尔来找下毛哥指导动作和方向。
当时公司是在复式住宅里,二楼作会议室的客厅平时闲着也是闲着,于是就被开辟成我的简易健身区。跟毛哥训练那会儿又购入带长凳的引体架,再配合弹力带和自制重物就能做不少动作了。现在完全自己训练,又从万能的淘宝上搞到六角杠铃和带抓孔的杠铃片,杠铃片能带壶铃 / 哑铃用,这下装备就齐全了。六角杠铃可以通过调整臀位高低来模拟硬拉和深蹲,拎起来又能农夫行走,也是居家必备神器。只可惜少了卧推架,杠铃片卧推也上不了太大重量,导致后来上肢力量发展远不如下肢。因为本身不喜健美式训练,在轻重接触到的也是功能性训练和力量性训练比较多,所以自己的训练方式也是往力量举体系靠。直到 16 年下半年,为了标准地练习力量举三大项动作(深蹲,卧推,硬拉),才又置入深蹲卧推两用架和标准杠铃。(新装备也没用多久,就参加了每周三训的轻重男子中级班,紧接着公司就搬到正规办公楼,DIY 健身房也就完成了它的历史使命。)
自己训练求稳为主,除了有次六角杠铃硬拉时伤到下背养了两周,也没别的什么伤痛。最令人欣喜的是,七月份的一个夜晚,心血来潮出去跑步,竟然完整地把十公里跑下来,髂胫束并无任何不适感。我终于彻底摆脱 5km 魔咒了!突如其来的畅快,水到渠成的得意。
就这么练了多半年,想知道自己练得怎样有没有练偏,也想亲身体验系统的训练计划,当看到轻重推出男子中级班的介绍时,感觉这简直就是为我而设。班上 4 名同学,大家水平差不多其中 zyp 同学较强,所以轮番做组还是相当愉快。训练基本是三大项为主,再加辅助动作以及循环训练。这阵子力量和体能进步都很大,而且最重要的是知道了健身房里“正规军”是怎么练的,后面自己去健身房就是驾轻就熟了。
公司搬到新地方后,经过一番考察,周围大大小小的健身房竟然只有看起来最弱的社区健身房有自由深蹲架。办卡的时候数了数在场的杠铃片,感觉有两个壮汉训练的话可能就不够了,于是把自己的杠铃片和六角杠铃也一道捎了过来凑数,开始了自己的力量举训练。训练参考了知乎上 Gabby(GG)的线性计划,简单有效,不像其他计划那样需要比较严格地执行;再加上循环训练提升心肺体能水平。从年初到八九月份,体重从 62kg 稳步上升到 66kg,三大项成绩大概是深蹲 125kg(推测值)/ 硬拉 140kg / 卧推 65kg(推测值)。
独乐乐不如众乐乐,看到自己的进步,也不能落下家人啊。求爷爷告奶奶的,好不容易才把小魔女骗上贼船,自己亲自上阵做私教。“带课”的时候自己的训练基本只能暂停了,最多就是趁她组歇的时候搞搞六角杠铃拉拉引体,维持维持力量。紧接着 11 月 12 月又跟着小魔女去上一对二游泳班,每周至少 2 游。好在她总算学会了换气蛙泳,我也跟着矫正了野路子动作。再到后来由于攀岩、举重训练比重增大,也意识逐渐到整体力量水平不再是我运动表现的瓶颈,就再也没有过一周三天的纯力量训练了。
现在的力量训练都是按需进行,偏举重专项力量为主,有时间就练,没太特别的计划,但会根据身体状态调整内容。可能是因为训练目的性变得更强,就这样力量水平还是有明显进展,上个月(2018.3) 62kg 体重相扑硬拉 155kg,前蹲从空杠提高到 80kg 能标准做四五个,高杠成绩也追上低杠(6RM 110kg)。
一直以来我是很喜欢到山里徒步的,走得多了总觉得有些单调,就开始向往真正的登山,而攀岩又是登山的基础。2016 年 8 月终于等来了契机。有次散步路过世博源的攀岩墙,难得家门口就有的学,便有了入坑的念头。作为一枚资深恐高分子,第一次体验其实不是很愉快。爬到最顶上之后,厥洋(教练)让我松手他才好放我下来,我死命的就是不肯放手,心理建设了半个世纪之后一咬牙才霍出去把命运交给教练。后来孝好(教练)让我试试看横移,根本走没几步手臂就胀成石头般僵硬,超打击。本来想想自己可能跟这运动八字不合,这时候无意间竟看到邢伟超出去野攀的朋友圈,而且一聊才知道他常去的岩舞空间攀岩馆就是厥洋他们的本部,果断抱大腿求带!
刚开始是跟着厥洋师傅学的,周末再固定和老邢去虹口刷线。头两个月每次爬完手指都需要恢复好几天,手指韧带适应之后能爬的线也渐渐变多。17 年跟着岩舞组团去了几次野攀,终于如愿体验到徒手攀爬时和山体的那种亲近感(当然我也不会告诉你野攀第一次攀爬时有多恐惧无助)。由于长期训练重点不在攀岩上,也没有系统的训练计划,很快就陷入长时间的平台期。直到 17 年 12 月为了刷脂每周三次攀爬,体重直线下降,才看到明显的进步。但也就持续了 3 周我又开始学习举重,攀岩训练频率和进步再次放缓。
我攀岩最大的弱点是容易紧张,导致动作僵硬,遇到难点很快折腾力竭。现在经常注意提醒自己注意呼吸节奏,注意脚法,情况略有改善。比起其他运动,攀岩多变有趣,无论你水平如何,总有千千万万条线路适合你去攀爬,如果再进阶到传统攀、阿式登山那又是一个个大坑。而且攀岩对身体各方面锻炼比较全面,是一个可以长期培养的爱好。所以虽然一直很菜,想着还有几十年的时间,也不会那么急于求进,年纪大了求稳为主。
入门攀岩最先遇到的瓶颈就是柔韧性,脚抬不高打不开,很多动作变得很难或是根本就做不出来。自己先是在家里拉伸,因为缺乏经验收效甚微,有时还因为出现代偿搞得腰酸背痛。研究了一番,我能接触到的只有舞蹈和瑜伽这两个体系能系统提升柔韧性。舞蹈想想就算了,正好健身房有瑜伽团课,没想到这么一试就坚持下来了。瑜伽体式练习比我预期的更有意思,除了柔韧性提升以外,对稳定性也有要求,慢慢地身体觉知也变得更加敏感。从 2017 年 1 月开始,每周一到两次瑜伽课,大概持续了一年,我发现这个频率已经不能再继续有效提升柔韧性了。尤其是开始练习举重之后,肩髋柔韧性要求更高,达不到标准动作就是做不好。
出于时间效率考虑,18 年 3 月开始逐渐停掉日常瑜伽,转而把髋关节、肩关节拉伸纳入训练计划。每周大概有 5 天坚持这两个关节的拉伸,静态和 PNF 相结合,举重训练完也会顺势压压肩。效果非常明显,偶尔去下瑜伽课老师都惊叹我是不是开挂了,举重挺举进肩也到位多了。后面会再咨询下物理治疗师,研究一套适合我的活动度提升方案。
说来也神奇,我学举重也是因为攀岩的影响。当绝对力量水平到达一定阶段后,再继续提高对攀岩帮助不大,而且长期力量训练不注重拉伸的话也不利于身体柔韧性。攀岩需要关键部位的力量:核心,肩,背,指力,以及爆发力。完全抛弃其他力量训练又心有不甘,想来想去也只有举重能满足我的需求:至少能维持现有的力量水平,同时引入爆发力训练。这时候正巧看到 Gaby(MM)写的举重入门文章讲解特别细腻,而且开的馆子女神举重就在静安二少体校举重房,感觉特专业。2017 年 12 月,游泳班结束之后就迫不及待地开始了举重训练。
第一节课是跟 Richard 一对一上的,教练从头到尾都在惊叹我的领悟力,搞得我差点以为自己天赋异禀后悔没有早学举重 20 年。谁知接下来的一个月跟宗教练和 Gaby 磨动作才深切体会到教练们有多耐心,就我这种资质的学生也有兴趣教。苦练了两月总算是有点架子出来。练习过程中逐渐体会到举重对发力节奏、协调性、柔韧性都有很高要求,而这些恰恰是普通力量训练所欠缺的,但同时又是其他很多运动所需的素质。举重也让我不得不更重视柔韧性训练,这应该也是下来两年的训练重点。
说起体操,其实只能算是和体操老师做一些基础动作,离入门十万八千里。如果给我各项运动水平打分,力量举 60,攀岩 50,瑜伽体式 50,举重 30,那么体操大概是 2 分。专业体操对成年人来说是一项几乎不可能完成的任务。接触体操只是因为举重房里开了这门课,跟着上了一节课还挺好玩的,课程主要围绕倒立和双力臂这两项展开,还挺适合我们这些渣渣学员。体操基础训练也会锻炼到很多小肌群,倒立滚翻这些也能提升本体感受力,确实是对举重很好的补充。而体操对肩、背、核心的高强度训练也正好和攀岩的需求相吻合,对柔韧度的变态性要求也再次坚定了我脱掉“老僵”帽子的信念,以后要多多借鉴体操的训练方式。
训练如修行,了解自己的身体是了解自我的第一步。我能做什么?不能做什么?一点一点地挖掘自己的潜力,本身就是很有趣的事情。其实这些话题每个展开都有很多心得感悟,囿于篇幅这里就只先简单梳理经历过的几次转变,等有合适的时机再细谈吧。
]]>If there are threads blocked on the mutex object referenced by mutex when pthread_mutex_unlock() is called, resulting in the mutex becoming available, the scheduling policy shall determine which thread shall acquire the mutex.
这里的 scheduling policy 是指操作系统的调度策略呢,还是指当前 mutex lock 类型的调度策略,上下文并没有提及。网上看到不少说法是不保证唤醒顺序,但有同事说他之前看过,PTHREAD_MUTEX_TIMED_NP 类型的锁是能保证先进先出顺序的。
我们先来看下 PTHREAD_MUTEX_TIMED_NP 的语义,libc 文档 中解释了 posix mutex 的几种不同类型:
所以 PTHREAD_MUTEX_TIMED_NP 这里的“timed”是指可以用于有超时限制地拿锁,而不是按照时间顺序唤醒的意思。我们可以进一步从 glibc 代码 中确认,对于默认的 TIMED 类型,pthread_mutex_lock 直接调用 底层锁 ,而后者用 Linux kernel 的 futex 实现锁的功能,并没有额外的队列排序功能。每次释放锁,都会调用 futex_wake syscall 尝试唤醒 一个 线程。
而 Linux futex lock 的实现 是以锁的地址作为 key,把当前线程插入到对应的队列中。队列按照线程优先级排序,相同优先级的线程按照先进先出顺序排序。所以虽然 futex 语义 和文档 都明确提到不保证唤醒顺序,但至少目前的实现中相同优先级是 FIFO 顺序。为了验证这点,我修改了 p 哥之前的一段 实验代码,加入优先级设置,并同时测试 mutex 和 futex。结果与前文所述一致。(一开始设置优先级总是不生效,折腾了很久之后才知道原来 pthread 默认是继承父线程的调度属性,必须设置成 PTHREAD_EXPLICIT_SCHED 模式才能改变调度策略和优先级。)
LWN 上有篇 文章 对 futex 作了简要介绍,可以快速了解 futex 实现。里面也提到了 futex 的一系列优化。比如最开始 futex 实现涉及到页表操作,需要拿 mmap_sem 锁;到 2008 年 9 月,futex 已经彻底消除了对 mmap_sem 的依赖,这样再也无需与 page fault 或 mmap 操作竞争抢锁。
]]>看起来不错,便捷、高效。鱼掌可以兼得,就是这么任性——直到上线后发现系统指标异常,一路怀疑到这里可能有性能问题,才知道事实并不尽然。
我们测量了每个数据从入队列到出队列的时间差,数据分布见下表的第一行数据(Disk),其中大于 1ms 的毛刺点竟达到 3.8‰,均值和 90% 分位点也比预期的要高。初步猜测有两个因素可能影响比较大:
|
|
随后我们分别尝试了用 tmpfs 替代磁盘,绑定进程运行的 CPU 核等不同配置组合。从上表可以看到绑核对毛刺影响较大,再加上用 tmpfs 存储,可以大幅度优化延迟。
其实我们创建 mmap 时,已经用了 MADV_SEQUENTIAL 来提示 kernel 我们是顺序访问,事实上也是如此。但如果这样有效的话,换成 tmpfs 并不能带来多大的加速,这和我们预期不符。所以有必要进一步搞清楚 mmap 的使用方式。
我们先来梳理下 mmap 的机制。mmap 分两种,匿名的和有文件映射的,我们只讨论第二种。mmap 的语义是将指定文件区间映射到当前进程的虚拟地址空间,调用返回空间起始指针,后续对这段空间的内存读写就相当于对底层文件内容的读写。默认情况下,mmap 调用时并不会帮你把整个文件都映射进内存,而是按需分配页表:因为你的文件可能很大以至于超过可用内存大小;也可能你只需要随机访问其中一小部分,没必要都映射进来。
那么当你访问到一个尚未分配页表的虚拟地址,CPU 就会触发一次 page fault,当前进程进入相应的内核 page fault handler。在这里,内核需要
当然如果只是 minor page fault(比如访问的共享数据已经被其他进程加载进内存),就只需要第 4 步操作。除此外,大范围的 mmap 还有个问题就是会给 TLB 带来很大负担,影响到整个系统的性能。
从使用者的角度,mmap 的这几项开销的优化思路主要就是预处理了,比如预先分配文件内容(Prealloc),预先触发 page fault(Prefault),让操作系统协助预取(Prefetch)。实现预处理的手段也有好多种:
Prealloc 节省了步骤 1 的开销,Prefault 节省了步骤 1-4 的开销,Prefetch 最理想的情况下和 Prefault 效果一致。为此我们设计了一组对照实验,测量每一组配置下用 128 Bytes 的数据块去写入 256MB mmap 区间所需的时间,以模拟我们真实的使用模式。底层的存储都使用 tmpfs,我们还分别测量了 tmpfs 使用的内存与测试进程在不同 / 相同 NUMA node 的情况。
我们可以看到,Prefech 的行为没有明显的效果,主要是因为操作系统需要一定时间去做预取,并且这个行为我们是不可控的,所以也没有特别安排不同等待时间的实验。Prealloc 能带来 20% 不到的提升,这也是步骤 1 的开销。其他各种 Prefault 的组合效果差不多,大约 60% 出头,这基本就是 page fault 的所有开销了。ManualPrefault 效果更好应该是因为它同时也做了 cache prefetch。
感兴趣的同学可以跑下我的 实验代码,比较不同环境的测试结果。
从实验结果我们可以看到,Prefault 能极大地减少 mmap 的开销,但它的代价也是很大的——需要把整个文件都事先加载进来。对于我们这个动态增长队列的用法就更糟糕了,相当于我们必须加载进可能的最大队列长度,而实际上大多数队列只使用了一小部分空间,这就造成极大的浪费。
比较折衷的办法是把不可控的 kernel pretch 搬到用户态来:预先分配一小部分空间,在运行的过程中根据使用情况预先处理。每次预处理长度的算法可以根据实际应用具体调整,丰俭由人。由于 page fault 是在 kernel 态完成的,天然就是线程安全,所以多线程的预取实现起来很方便,也不会影响主线程的正常访问。
在设计实验前,参考了些其他相关的测试代码,发现不少 madvise 的错误用法,一般有这么两种错误类型:
用 | 连接两个不同的策略。事实上,madvise 的策略枚举值是互斥的,不是比特标志位所以不能用 | 连用。这是一部分枚举值的定义:
|
|
连续调用多次 madvise 以实现多种策略混搭的效果。其实只有最后一条 madvise 语句生效。Linux glibc madvise 实现 中,madvise 直接调用 syscall,并透传参数。 而在 Linux madvise syscall 代码 中也可以看出每次调用都会清空并覆盖之前策略的设置。
另外一个是 man mmap 里对 MAP_POPULATE 的解释有歧义:
它其实想说的是,从 Linux 2.6.23 版本以后才开始支持私有映射,共享映射一直都是支持的。但乍一看很容易理解成从 Linux 2.6.23 版本以后只支持私有映射。吐槽 的人不只我一个哦。
传统页表大小只有 4KB,其实现代处理器架构可以处理更大的页表,从而减少访问同样内存大小所需的 page fault 数量和 TLB 压力。Linux 有两种大页支持,hugetlbpage 和 transparent hugepage。hugetlbpage 需要创建一个 hugetlb 文件系统,但是只能读不能写,不符合我们的需求;transparent hugepage 灵活一些,可以在 mount tmpfs 时指定 huge 参数,但我们现在生产环境版本还没有这项功能。
我们原有的监控体系出于稳定和可靠性考虑,采用 mysql 存储,再加 python 开发分析与报警逻辑。好处是技术成熟,灵活可控,少坑。随着业务发展,这套方案逐渐难以应付更加复杂、多样化的监控需求。
监控数据往往都带有时间戳,其实就是一种典型时间序列数据,而这方面已经有很多专门的存储系统,如 opentsdb,influxdb。相比 mysql 这样的传统数据库,这类系统在存储、查询上针对时间序列数据都做了特别的优化。当然对于需要复杂查询的报表类数据,mysql 也有它的优势。为了支持丰富的监控指标,我们希望找到更加合理的存储方案。
此外,监控系统存在失效问题,而且在保持监控系统足够简单的前提下,很难同时保证低误报(假阳性)与不漏报(假阴性)告警。结合业务特点,比较稳妥的方式是人工与自动化监控相结合。告警与展示数据同源,所有的告警指标都能在监控页面上反映出来,这样一方面人工能做交叉验证,另外一方面收到告警信息之后也能方便地查看相关数据。
在系统选型前,有必要先梳理我们的需求:
前几年开始流行的监控架构,由于其架构的开放性,软件生态相当丰富,每个主功能都能找到不同的替代品,其数据协议甚至已成为事实上的监控数据协议标准。但由于其低效的存储格式(见下文存储部分)及简陋的展示页面,给我们带来的潜在工作量可能更大。
TICK 是 influxdata 公司搞的一套开源监控软件栈 Telegraf, InfluxDB, Chronograf, Kapacitor 的缩写,分别与 Graphite 架构中的数据采集、存储、展示和告警模块对应,且与主流 Graphite 生态兼容。TICK 的核心在于 InfluxDB,一个高效且功能丰富的时间序列数据库;而 Chronnograf 与 Kapacitor 则相对没有那么惊艳;如果不考虑对 InfluxDB 的原生支持,Telegraf 也没有太突出的特点。
一套开箱即用型系统,但生态链并不如 Graphite 系完备,在存储、展示、二次开发等各方面也没有明显优势。
ELK 是 Elasticsearch, LogStash, Kiban 这一套日志分析软件栈的缩写。可对任意数据字段索引,适合多维度的数据查询,因此在存储时间序列数据方面与 InfluxDB 相比会有额外的性能和存储开销。强大的功能都是有代价的,我们暂时无此类需求。
小米的开源监控系统,使用者较少,且采用微服务架构,理解及部署都略显复杂,不过文档中提到的一些运维经验还是值得借鉴的。
为了避免绑死在一条船上,我们希望监控系统能采用开放性的架构,各个部件可以根据业务需要、开源社区发展程度进行调整。一般来说监控系统都有如下五个功能模块,我们将分别讨论。
首先最核心的是存储模块,数据的存储基本决定了展示和分析的形态。根据之前的运维经验,mysql 不是很适合大量的时间序列类数据的频繁写入存储,所以为了监控系统的方方面面,存储必须足够 高效 。其次,由于我们人手有限,不可能在一开始就大量投入开发时间,所以要求存储系统 简单易用 ,且 表达能力 足够满足基本查询、分析需要。
influxdb 采用简洁而高效的 TSM 文件结构,查询语言基本与 sql 一致,而且用 go 语言实现的程序效率和易用性都挺有保障:)
另外一个选择是 graphite,但由于其存储格式是固定时间间隔都要占坑,对于稀疏数据非常浪费空间;且每个 metric 都对应于一个独立的文件,同时写入多个 metric 会产生很多零碎的文件 IO 操作,已经有不少关于这方面性能问题的吐槽。
所以我们最后选择了 influxdb 作为存储系统。
采集这方面已经有很多成熟的项目,如 collectd/stats/diamond,大同小异。然而,telegraf 是 influxdata 的亲儿子,它支持 influxdb 特有的 key 与 field 格式。毫无悬念的,既然上了 influxdb 的船,那就用 telegraf 呗。当然对于业务系统数据,可能会考虑直接往 influxdb 发送数据;telegraf 只负责采集系统级别的监控数据。
TICK 架构里的 Chronogra 作为展示模块,功能过于简单,无法满足需求。而另外一个成熟的 Grafana 项目,从 Graphite 时代就发展起来,拥有丰富的展示功能,强大而方便的可配置界面和插件系统,且可以批量创建管理展示配置,最关键的是与 influxdb 适配也非常成熟稳定(influxdata 的支持),让我们别无选择。
监控系统的成败就在于能否恰当地告警了。Grafana 自带报警功能,报警内容能在图标上直观地展示,这样出报警时可以方便查看报警情况,同时也方便运营同学平时有事没事 double check,避免因报警渠道阻塞而造成故障不能及时处理。不过 Grafana 的报警功能比较简单,只支持简单的阈值检查,所以这里还需要我们实现一些辅助分析,把复杂的报警需求转化成可以做简单阈值检查的指标书数据。
虽然 TICK 架构包含了 Kapacitor 这一告警子系统,但它并不能直接支持展示,且使用的是自己的 dsl,虽然足够强大但表达能力毕竟还是受限,学习成本过高却没有解决我们的问题。
暂无复杂需求,沿用现有系统。
Telegraf + Influxdb + Grafana + 二次开发,如图所示。
忘记是在哪得知世间有这么一个奇人的存在。柳比歇夫,苏联生物学家,昆虫学家,数学家,哲学家⋯⋯柳比歇夫的遗产包括几个部分:有著作,探讨地蚤的分类、科学史、农业、遗传学、植物保护、哲学、昆虫学、动物学、进化论、无神论⋯⋯他的知识面有多广,是很难测度的。谈起英国的君主制度,他能够说出任何一个英国国王临朝秉政的细节;说到宗教,不管是古兰经、犹太传经,还是罗马教廷的源流、马丁·路德的学说、毕达哥拉斯学派的思想他都是如数家珍。他懂复变数理论、农业经济、罗·费歇的社会达尔文主义、古希腊古罗马⋯⋯
柳比歇夫每天都要结算他度过的时间,算出他每一项活动都用了多少小时多少分钟,从青年到临终几十年从不间断。看起来这样活得很累很死板,然而在事实上,柳比歇夫的命运并非如此。他的一生是生气勃勃、和谐协调的一生。他孜孜不倦地追求自己的既定目标,在他生活中是起了重大作用的。他一生始终忠于他青年时代的选择,忠于自己的爱好和理想。他自己认为自己是幸福的;而且在旁人的眼里,他的生活由于目标明确,也是令人羡慕的。
柳比歇夫通过他的时间统计法对自己进行了研究和试验:试验在写、读、听、工作、思索各方面,他到底能干多少?干多少?怎么干?他不让自己负担过重,力不胜任;他总是循着他能力的边缘前进,他对自己能力的掂量愈来愈精确。这是一条永不停顿的自我认识的道路。
如果一个人能知道自己能干些什么,那他的生活会变得多么美好!因为每个人的能力都比他自己感觉到的大得多。他会变得比自己想象的更为勇敢;他会变得更坚韧、更有力,更能适应环境。
太伟大了!
]]>基本在路边和加油站解决。车子其实没那么容易丢,一般也就在闹市区才会有贼,放在店铺前让闲着点的店家帮忙看看一般也不会有事。路上遇到的草帽哥,他的小折叠驮的行李太重,只能倚靠墙体才能立稳,吃饭时他经常停得有点远,也有点离开视线,这么 2 个月也没丢。
午餐和住宿尽量找镇上的,相对繁华的县里和城里,镇上要便宜些。车子一般跟老板说晚上需要扛进房间调一调,推进房间都没有大问题,多说说好话就是。
每天晚上都手洗,在空调出风口挂着干得很快。能跟店家借到风扇的话就更给力了,我们那天三人淋了一天的湿衣服,吹了一个晚上几乎全干。山上雾气重,别晾阳台。那天我的鞋子和两条骑行裤就是在阳台晾得更湿,第二天出发把鞋子绑在行李上晒了一个上午就干了,中午吃饭时再把骑行裤铺在坐垫上,干得快,顺便还给坐垫遮阳。
我的雨骑装备太土了,就一件不大防水的伪劣冲锋衣和一双拖鞋,小雨能顶顶,遇上大雨直接湿透。
雨骑主要有三个问题:
雨大时会打湿眼镜,甚至渗进眼里酸得睁不开眼。想不到好办法,xxxxxx 也说这个问题无解。
上身湿了之后很难受。较差的能防水的冲锋衣或分体雨衣,很闷,流的汗就把
自己搞湿了。雨披应该是比较经济有效的配置,whitemonkey 就是这么干的。
鞋子也很容易湿。可以用专门的鞋套,下面是硬的条纹,但是包起来很闷。防水
的登山鞋不知道行不行。还是拖鞋或凉鞋简单直接。
裤子相对淋雨较少,而且下半身湿了没有上半身难受,问题不大。
V 刹雨天确实危险,尤其是下坡。要及时清洁刹车片和车圈上的沙泥和刹车片磨出来的粉,保证刹车尽可能灵敏,下坡千万小心。
另高大威的驮包确实不错,经历了好几场大雨,也只是里面渗了少量水,基本无碍。
人在关键时刻的潜力是很大的,虽然之前我每次长途骑行回来后都要好几天才能完全恢复,但这次居然每天起床都满血复活,自身的调节作用功不可没。当然跟自己把握的节奏也有关系。长途骑行最重要的是续航能力,所以要注意能量的补给,少吃多餐,在肚子饿之前吃东西,在口渴前喝水,基本就能避免体力的透支。晚上肌肉或关节酸痛的话就抹抹扶他林,尤其是爬山之后膝盖特别疲劳。前几天每晚我还有做肌肉伸展运动,后来觉得适应了也就省掉了。其实到后半段已经适应了每天这种骑行状态,没之前那么刻意讲究,感觉也很好。
]]>今天就能到家啦!不过一早出发便遭遇大雨,避了一个多小时雨再次出发,雨才开始转小到停。思乡心切,一路不敢再多休息,11 点多到达汾水关,传说中吃蛇肉的地方。跟蛇店老板阿伯滴茶闲侃聊得很开心,这里讲的已经是潮汕话了,阿姨说就当自己家一样哈。
吃过午饭一出门就下起暴雨,早知道就在店家喝多两杯茶再走。好在雨也就下了半个多小时就小了,此后到家最多都只是小雨,没有大雨果然痛快。
从云霄到饶平也是起起落落,入了饶平境就是潮汕平原,路平,路况也好,几度高速巡航,无奈雨天积水多,骑的还是比较谨慎。
澄海境内路边房子一个连一个,只有澄海汕头交界有少量农田,是这些天少有的长距离穿城。很多地方没红绿灯,要注意支路状况。
15:30 左右到达南社,打电话到家里说大概 17:00 到家。听电话的是弟弟,他说他猜到我这次是骑车回来的 @@
经过老家桥头路口,小时候经常在这搭车去汕头
16:30 进入汕头市区,又花了近半小时才穿到家门口。家里只有弟弟在,他电话又没放好,最后居然是靠微信才找到他帮我开门……感谢企鹅君 =。= 弟弟下来帮忙搬东西,看到弟弟很兴奋,直接把车举起来让他拍了此行的最后一张照片。至此,历时 12 天的骑行胜利落下帷幕!
耶呼~撒花~
Dist: 119km
Time: 5h26m
Avg: 21.81km/h
AccDist: 1423km
AccTime: 80h6m
Start: 7:10
End: 16:50
RealTime: 9h40m
昨晚睡的地方外面光线进不来,风扇听起来又像是沙沙的下雨声,于是以等雨之名赖了一个多小时床。
刚出发时只是偶有微雨,出海沧一路顺风加微下坡,保持 30km/h 以上巡航大半小时,直到漳州角美穿城才慢下来。在漳州境内一个加油站避雨时,第一次看到汕头的路标,离家已经很近了!
看到箭头没有!!
漳州到云霄一路都是上上下下,坡大多不陡也不长,强度不大。路况也不错,偶有大片积水。
今天的雨一阵一阵,时大时小,大雨都持续不长,中午吃饭顺便躲过最长的那场雨。雨小雨停时都抓紧时间赶路,片刻不敢多停,就这样打了一天游击。最后三小时几乎没怎么休息,趁着天稍晴赶到云霄。
晚上在云霄莆美镇住下,出去找吃时发现好多都是潮菜粤菜,就连凉茶铺还是汕头裤头方连锁店,至于嘛!
Dist: 139km
Time: 6h49m
Avg: 20.31km/h
AccDist: 1304km
AccTime: 74h40m
Start: 9:10
End: 18:55
RealTime: 9h45m
一早莆田便开始下雨,再次无奈冒雨出发。穿城时我和他们一度走散。他们走 S201 抄近道,我还是在 G324 上,当时还天真地约在惠安碰头吃午饭。没想到 11 点多时雨势突然加大这一避就避到下午快 2 点。眼看雨势凶猛,果断和约定在莆田火车站碰头,直接火车到厦门,他们在泉州就下车,这下又只剩一个人了。一个人的好处是节奏自己好把握,不怕拖累体力好的,也不用照顾状态差的,之后两天刷得确实挺爽。
下午五点多出厦门站,走玉屏路去厦大宿舍找板板。玉屏路坡很陡,一下爬上去还是挺累的,好在路上风景不错,雨后空气非常清新,骑着很舒服。厦门司机很有素质,和温州司机简直是天壤之别;而且厦门路况不错,下那么大雨也没多少积水。
板板和照片里一模一样,一开始就能远远地望见自习室边上的她,识别毫无压力。板板和她同学招待了晚饭,晚饭后转悠了一圈发现附近住宿基本客满,于是决定冒雨出岛。度娘今晚表现神勇,先是让我误上演武大桥,上面的灯光如梦似幻;接着又逼我强上海沧大桥,俯视整个厦门岛十分壮观。这两条都是高架桥,自行车不能上的,但晚上雨势非常凶猛,不想冒雨走街串巷的找住的,轮渡也不见得有开,于是索性就咬咬牙上了桥冲到岛外。该动作十分危险,请勿模仿。
Dist: 63km
Time: 3h42m
Avg: 16.93km/h
AccDist: 1165km
AccTime: 67h51m
Start: 9:45
End: 21:00
RealTime: 11h15m
今早起来看天似乎还有微雨,天气预报又说福州到汕头沿线都在下雨,于是已经做好最坏打算,不行就直接坐车回家。没想到出门后不久就出了大太阳,而且一整天都是晴天,加上厦门泉州等前线朋友都报道天气不错,战意瞬间回升。
连江到江口一直都是平路加起伏路面,坡度不大,天气又好。我在刚出连江的一个隧道前 cosplay 了一把大圣爷爷,以表达我们的感激之情,顺便祈祈晴,果然今天就一路晴到底。
快到福州,在等火车通过,然后手机屏幕摔裂了,FML
中午在福州市内绕了近两个小时的路。要过鼓山大桥得在鼓山隧道前就左拐,我们就是误入隧道才兜了好大一圈,还遇上各种通过不能的烂路。出福州只要一直刷 324 国道就能到家了,国道路况是不错,但是车多尘土多,路边没多少风景。
晚上在江口东岳观转了好一会,耽搁了点时间,吃过晚饭再找住的已经很晚了。
草帽哥很迷文保,跟着他瞎转了很久~
Dist: 135km
Time: 7h18m
Avg: 18.42km/h
AccDist: 1102km
AccTime: 64h9m
Start: 9:30
End: 21:00
RealTime: 11h30m
一早赶到霞浦火车站,D3109 车上人很少,虽然上车的人多,也没几个站的,没拆车轮直接坐到宁德。宁德出城后便一路上上下下,路况不错,但来往运沙石车多,扬尘很大。后面从宁德到福州这段都是 104 国道。
到了飞鸾镇便要开始翻越飞鸾岭,约 5 公里陡上坡,海拔提升 400 米。开始上飞鸾岭时追上一个从福安来要去泉州的骑友,正好同路,队伍壮大啦!
福安哥车头还有个小喇叭,开心得很。加油啊,孩子,就快到顶啦!
前面垭口停的就是我的车:)
高大威销量不错
下坡后就到了罗源县,午饭过后雨开始越下越大,大家无奈换上雨骑装备继续赶路。我就一件伪劣冲锋衣很快湿透,因为风雨都很大,他们也没好到哪里去。不过草帽哥的雨披效果还不错,福安哥的雨衣不透气,里面其实已经被自己汗水湿透了。湿透后一旦没发力就很冷容易着凉,尤其下坡时冷得发抖。
一出罗源又是个一两公里的上坡,爬升两三百米,过了这坡后一路上上下下,最后下坡到连江。
第三次被淋成落汤车,落汤鸡太狼狈就不照了
下午雨一直很大,骑得十分艰难。中间路过一个齐天大圣庙(福建人啥都拜 -.-),发现方圆一两公里内都没啥雨,这简直就是晴天大圣嘛,草帽哥还专程折返去给猴子拍照……
雨天 v 刹十分危险,尤其下坡的时候,太滑夹不住,我用力掐住也只能缓慢的减速。今天下坡基本不敢超 30km/h。
淋了大半天落汤鸡,晚上吃饭跟店家要了姜汤驱驱寒气。
Dist: 94km
Time: 5h47m
Avg: 16.23km/h
AccDist: 967km
AccTime: 56h51m
Start: 9:30
End: 17:30
RealTime: 8h
白琳出来就是七八公里陡上坡翻越太姥山,爬升 400 来米,过了郭村就一路下坡到达秦屿。秦屿是大镇,食宿没问题。
之后秦屿到硖门,硖门到牙城都是一个上坡一个下坡,爬升大概都是 200 来米吧。
牙城到霞浦是今天最艰难的一段,也是十出头公里陡上坡,之后一路下坡,最高海拔 650 米。中间略有起伏,后面有一段照明较差的隧道。
今天经过的几个大镇海拔都很低,中间被山脉隔开。从福鼎到霞浦的 973 县道非常烂,都是坑洼下坡尤其颠,不时有碎石路,屁股硌着疼。
原本绕远走烂路取道霞浦是为了能坐船过宁德顺便赏海景,但到了之后才知道那几天雾都很大啥都看不到。而且霞浦本身没轮渡,旁边的溪南镇现在也没有大的客运,要坐快艇过去比较贵,溅起的海水还伤车。东冲半岛可能也有,但有 40 多公里路,万一又有什么意外一天就没了。再加上看着天气不大对劲,实在是不想再走山路。权衡下还是决定动车直接到宁德,才十几分钟就到。
雾很大,海景看不成咯
后头就是霞浦的海
Dist: 82km
Time: 6h11m
Avg: 13.35km/h
AccDist: 873km
AccTime: 51h4m
Start: 7:30
End: 16:30
RealTime: 9h
早上瑞安穿城,跟温州城区一样乱,相当疲惫。平阳境内有条一公里左右的隧道,来往车辆多,扬尘多,尾气热,难受之极。
中午平阳萧江吃过午饭后,偶遇一从北京计划骑到厦门的兄弟,车后驮着一顶草帽。草帽哥专门辞职骑游,已经转了 50 几天。剩下的一段正好一路作伴。神奇的是,半个月前他在绍兴也遇到那个内蒙徒步哥,还给了徒步哥地图。我们不禁感慨,徒步哥走得可真快呀。
草帽哥
出了桥墩就开始一路上坡,直到分水关登顶,之后再上上下下,最后一路下坡到福鼎。可能是因为有了个伴,这一段走下来一点都不累。
入福建界
福鼎到白琳就是一个陡上坡加一个陡下坡,好在不是特别长。这一段路又偶遇到两当地骑友,其中一个还是白琳人。边聊边骑果然轻松,一下就到白琳。白琳大哥还帮我们在镇上找了住的,还帮还了价,真是好人啊!
五点半就到白琳,晚饭菜量很给力啊!
今天明显感到膝盖疲劳,晚上热敷了下。
闽北的坡真陡,今天下坡破了个人最高时速……
Dist: 112km
Time: 6h11m
Avg: 18.18km/h
AccDist: 791km
AccTime: 44h53m
Start: 8:45
End: 17:30
RealTime: 8h45m
今早一直小雨,我六点不到起来,等到八九点实在等不及,在镇上吃了碗小馄饨冒雨出发。
出发没多久雨越下越大,衣服全然湿透。躲在树下脱掉短骑行服,换上假冒劣质冲锋衣,感觉暖和多了。继续上路,看到两个大叔头顶着皮划艇当伞在赶路,我看着挺好玩的就冲他们笑了笑,大叔估计也觉得自己的造型搞笑跟着嘿嘿了下。
昨晚到今天大雨一直不停,冒雨赶路成落汤鸡了 T_T
中午在岩头避雨吃饭,半饱时发现雨已经小了,赶紧打包出发,差点还忘了给钱……刚吃饱饭出来就遇到个徒步的兄弟,打着小伞,从内蒙古走到这里已经三个多月了,计划走到云南。徒步哥刚从雁荡山过来,说那边风景特好。我说走山路晚上怎办,他指指包里,已经在山上睡了两天帐篷了。雨天打帐篷实在佩服。因为下雨我也没敢多停,让徒步哥“好好保重”然后就赶紧上路。午后雨开始慢慢停下来了。
岩坦到永嘉一路下坡,但 41 省道永嘉北段 10 来公里多处整修其中有三四段坑洼很多的砂石路只能推车。一开始我太自信还想直接骑过去,结果小摔了一跤,还好连皮外伤都没。车圈碾过泥洼地后沾上泥沙导致刹车不灵,找了山泉洗车洗脚,效果不错。这段路上还目睹一场车祸,一辆小面包横卧拐弯处的路边,车上已经没人了,没看到血迹,经过现场时还是有点小压力。
在这段路小摔了一跤,还好连皮外伤都没有
车圈沾了太多泥沙,刹车不灵,找到个山泉洗洗车,顺便洗脚哈
找到个给力的,这下可洗干净了
绕过永嘉城区的那段也整体封闭整修,只能穿永嘉城区到温州。这一路都是沿楠溪江直下,今天的大雨也让我原来的溯溪计划直接流产。岩坦之后沿途小乡村就渐渐多起来,楠溪江景区附近人也不少。永嘉境内很多卖麦饼的,里面包酸菜和五花肉,好吃毙了!
楠溪江,这两天雨大,水比较浑浊
永嘉到温州以缓下坡和平路为主,平路 27km/h 巡航,一扫之前烂路和穿城的憋屈。临近温州路边城镇越来越多,空气也逐渐变得很糟,刚进温州就开始怀念山里的日子了。温州路况车况都很差,司机相当没素质:从支道转入干道时不看人行道状况直接打拐(短短一个傍晚就遇到 10 多次这样的情况);为了超车可以闯入人行道而不管骑车的人;特别粗鲁喇叭一直摁个不停;行人也全然不遵守红绿灯。二三十公里的穿城我用了两个小时,比爬山还疲劳。因为对温州印象很差,索性直接赶到瑞安住下,比原计划提前一站,信心再次大增。瑞安住的地方正好是会所一条街,路边停满各种豪华小车,相当繁华。
Dist: 123km
Time: 6h48m
Avg: 18.06km/h
AccDist: 679km
AccTime: 38h42m
Start: 9:15
End: 18:35
RealTime: 9h20m
从昨天开始脖子没前两天那么酸,肌肉也没感觉疼痛,看来是开始适应了。不过昨天爬坡强度有点大,还忘了擦扶他林,一早起来膝盖有点酸。这两天少吃多餐,定时喝水的策略非常好,三天骑下来没有以前那种没有全身力气被掏空的感觉。
方前至大盘 20 公里路几乎全上坡,坡度还不小,太阳非常晒,体力消耗很大。
一路经过的都是景区啊,可惜山坡上太险峻了,风景好的地方不大好停车拍照,只能边骑边看了@@
大盘至仙居 42 公里几乎全下坡,非常之爽,中午顺利抵达仙居吃饭。
从仙居出来有一段平路,接着十出公里上坡到上张乡。上张乡境内几公里较平的路,然后又是二十几公里以上为主的上下坡,直到仙嘉隧道前登顶。今天的坡远没昨天的难爬。仙嘉隧道很长(一公里多)很黑,记得准备好前后车灯。此后就是一路全下坡了。
后面还要经过的大学岭隧道也很长(七百多米)很黑,之前几公里一直小雨,到这里时已经是中雨,而且看起来没有停的意思。
快到目的地岩坦了,雨雾有点大,先躲躲
因为天快黑了,无奈只能冒雨赶到岩坦。最后五公里雨下得特别大,眼镜和眼睛很快就被湿得模糊。每几百米就得停车擦眼睛,打进眼里的雨水酸得我睁不开眼。当晚淋成落汤鸡,连岩坦的路牌都看得不大清楚。今天要是不下雨,就能追回昨天落下的路程了,岩坦和岩头距离已经很近。以后就知道了,看到整个天乌云密布的时候,千万要抓紧赶路别避雨。
这几天住山区里,店家让我把车停在一楼或他们房间里,都是怕我扛车上楼太累。今天的大哥还帮我把行李一起搬上去,省得我多跑一趟。路上好人就是多啊。
Dist: 124km
Time: 7h23m
Avg: 16.80km/h
AccDist: 556km
AccTime: 31h54m
Start: 8:05
End: 19:00
RealTime: 10h55m
这两天早起来都感觉精力满满,看来自己的节奏把握得不错,对后面的路信心倍增。
今天主要走县道,路不好认。一早便出师不利,被龙王爷和山神大爷轮着耍,雨时大时小,刚出崇仁就走错路,浪费了一个多小时。多亏有度娘和摩托哥在,这才送走了二位大爷。
雨雾天走山路实在太虐了,龙王爷放过我吧…
回到正道
想必这就是穿岩十九峰吧,十九个好基友
崇仁到镜岭以平路和缓坡为主,补给点也多。途径甘霖、澄潭,此四镇都是大镇,可住宿。经过澄潭中学正好赶上高考结束,来接学生回家的车把路都几乎堵死了,相当壮观。
如果要赶路的话,从镜岭到胡宅应该走新蟠线,千万别走北渡线,这两天路分叉口在渡头桥。我就是盲目听信度娘走了北渡线,后面要爬两三公里泥泞的泥石上坡和十来公里的陡上坡。那泥石路根本不会让你觉得这是条干道,旁边进村的小路都修的比它好。比如我一开始就悲剧地果断转入路况更好的练使村(正确方向应为石门)。
被困山中,雨快点停吧,哥还赶路呢
估计,快,登顶,了吧
不过如果不赶时间的话,挑战下这段路还是有点意思。路上难见人影,陡坡段连车都停不住,路边没有围栏,脚下就是山崖,颇为惊险。虽然景色壮丽,雨后山间水流,也没胆量靠近路牙子拍照。中间还顺便攒了点 rp,搬走了一个急拐弯前路中间的一块大石头,否则很容易发生车祸。大石旁边还有几块小碎石,目测可能是雨后山上的落石,不禁打了个寒战,赶紧上车走人。
这一段山路一个人影都见不到,纯粹是人与山之间的对话。在山面前,不用顾虑太多,无论你做了什么,山还是山,就在那里,不增不减。
到达山顶之后,一个长下坡就到了胡宅乡,可补给下。之后沿磐新公路直达尖山镇,路况非常好,上下坡兼有。尖山镇很繁华,经怀万线、墨新线到达尚湖镇,这里同样可住宿。从尚湖镇经墨新线、方山线可直达方前镇。方山线这段约 18 公里,由三对上下坡组成。经过胡宅前那段陡上坡的洗礼,眼前这些上坡已经算不得什么了。最后个下坡很长,约 10 公里,拐弯非常多。下坡前要先确保刹车正常(之前有一段下坡时发现后刹总有砂石摩擦声,路边捡了根稻草杆子捅了捅就好了),放松下手掌(过会压刹车压得手疼),天冷时还要套件外套(阴雨天傍晚山上很阴冷,我下到山下时冷得有点发抖),怕蚊子撞到嘴边的话还可以蒙上头巾。
方前的住宿点在方前桥头边的方前大酒店,找了好一圈才找到。老板的妈妈人很好,不大会讲普通话,第二天早上还送我馒头吃。她问我是不是从上海来,关键词上海让我听明白了;然后又问“叽咕了叽咕了”,我想来想去大概只有“几天了”的意思靠谱,又蒙对了;阿姨很开心,于是问我要不要馒头包子,直接就带我上后头厨房拿了。得知他们还没吃过,我赶紧说没事还是留着你们自己吃吧,阿姨实在是热情执意要我拿,还揭开另外个锅,说他们还有稀饭呢。最后只得恭敬不如从命地拿了两个馒头,临走时还特别跑到后头找阿姨道别。
今天的教训就是,在岔路口前除非有路牌明确指示,否则一定要看导航或者问路,尤其是县道以下的路段。不要根据方向或路况想当然地判断,山路七拐八弯的很容易误导,今天就是太大意才走错几次路,没能赶到预定目的地大盘镇。
Dist: 112km
Time: 7h11m
Avg: 15.57km/h
AccDist: 432km
AccTime: 24h31m
Start: 8:15
End: 19:00
RealTime: 10h45m
早上经江东大桥过钱塘江,上午主要是萧山和绍兴穿城。
桥上太恐怖了,一有大货车经过,整个桥面都在晃,旁边的吊索震的吱吱吱的响,跟地震一样。赶紧拍照走人……
中午在绍兴吃面疙瘩,满满的一盆搭配超丰富,怒赞!
下午走 S212 进山,一入平江镇就开始缓上坡,一路风景秀丽,有山有水,还有新人在这拍婚纱照,湖里也有好多人在划艇。
从王坛开始就转为陡上坡,一直到出了谷来镇。这一段补给点不多,谷来镇稍大,可能有住宿(我没留意到),所以在王坛前最好先准备好补给。
过了王院(S212 约 55 公里处)就以下坡为主,一路下到崇仁(S212 约 70 公里处)。
今天是人生第一次骑行上下坡,最艰难的一段已经频频 1:1 齿比,6km/h 爬坡,不知后面山路怎么过…另外发现车后驮了重物,高速下坡时容易左右摇晃,踩踏的时候晃得更厉害。不知是因为重心太靠后,还是两包重量不均衡。
傍晚时分山雾很大,下坡时能见度较差,孤身一人还是有点可怕。好在最后终于在天刚黑时赶到崇仁。小镇休息得很早,八点多出来吃饭好多店都打烊了,只剩一家人边搓麻将边看店,街上偶有散步的邻里走过,感觉很对。
Dist: 159km
Time: 9h17m
Avg: 17.12km/h
AccDist: 320km
AccTime: 17h20m
Start: 7:05
End: 19:20
RealTime: 12h15m
出发第一天非常兴奋,一早就起来了,聪聪为了给我送行也起了个大早,一直送我到华夏西路济阳路口才折返,真够兄弟!
去杭州的 01 省道已经很熟了,因为之前没有连续两天以上的骑行经验,今天主要任务就是把握好节奏,确保第二天的续航能力。
浦星公路上骑着骑着,恍惚间觉得脚下瓦凉瓦凉的,好像腾云驾雾般轻快,转头一看,靠!原来是洒水车!路上太吵我没听见洒水车的音乐,还好哥的驮包可是防水的。经过浦星公路的大叶公路航南公路段时,看到两对三四十岁的夫妇在拣路边垃圾,装了满满一袋,旁边停着小车。本来想给他们竖个大拇指表扬下,无奈当时正在骑车喝水,就变成了举杯庆贺的动作……估计他们也很莫名吧……在金山大道夏盛路的加油站买水的时候,加油站的大姐很好心地带我去她们的饮水机装水,据说比矿泉水还好,她们自己都装回家喝。还有个路过的司机大叔,他儿子也是复旦的,临走还特别嘱咐我一路小心,动力 ++!
上午路上一直补吃补喝,趁机压腿放松,倒是休息得不错。但是这样太浪费时间,导致中午 12 点才骑了 80 公里,到达浙江界,下午要赶另一半的路。
中午吃过饭上路一直犯困头晕,太阳有点大,躺路边睡了会,擦了万金油好了些但状态一直不好。可能是中午吃太饱消化不好,以后午饭要节制点。
好在最后两小时风速终于降下来,天快黑时赶到原计划的盐官住下。前台是帅哥靓女,态度又超好,还价不能啊,标间 100/ 晚。别的还行,就是地毯实在太脏,烟灰缸里还有烟头!
房间后头的小花圃
今天链条有点响,正好洗车上油,焕然一新,满血复活。
Dist: 161km
Time: 8h3m
Avg: 20.02km/h
AccDist: 161km
AccTime: 8h3m
Start: 6:55
End:1 8:55
RealTime: 12h
d1:张江 -> 海盐 -> 盐官。01 省道(154km)
d2:盐官 -> 绍兴 -> 崇仁。江东大桥过钱塘江,212 省道(145km)
d3:崇仁 -> 甘霖 -> 镜岭 -> 大盘。县道和 62 省道(118km)
d4:大盘 -> 仙居 -> 岩头。62,40,41 省道(126km)
d5:岩头 -> 永嘉 -> 温州。41 省道(66km)
d6:温州 -> 苍南 -> 福鼎。104 国道(111km)
d7:福鼎 -> 白琳 -> 牙城 -> 霞浦。973 县道(105km)
d8:霞浦 -> 宁德。301 省道,104 国道(113km)
d9:宁德 -> 罗源 -> 马尾。104 国道(125km)
d10:马尾 -> 福州 -> 莆田。324 国道(128km)
d11:莆田 -> 泉州 -> 厦门。324 国道(156km)
d12:厦门 -> 漳州 -> 云霄。324 国道(161km)
d13:云霄 -> 饶平 -> 汕头。324 国道(132km)
感兴趣的同学可以看看我的 详细路书,浙江段路线主要是参考网友边境线 001 的“谈不上攻略”的攻略