DreamBlooms/HansPub-15000-to-45000 huggingface dataset:
system: [SYSTEM]

user: 1. 引言 近年来，固体氧化物燃料电池(solid oxide fuel cells， SOFCs)由于其高能量转换效率、低污染和燃料选择范围广而受到了人们的广泛关注。传统的高温电解质会带来一系列复杂的材料问题，如高温的气密性、SOFC各组件间热膨胀系数的适配和界面反应等。因此，今后研究是重点是降低SOFC的运行温度，即开发运行温度在800℃以下的中低温燃料电池，而探索在中温区(500℃~800℃)具有较高离子电导率的新型电解质材料则是研究的重点 [ 1 ] - [ 14 ]。在这些氧离子导体材料中，掺杂的LaGaO 3 材料在600℃~800℃温度范围内呈现出高的氧离子电导。二价Sr 2+ 、Mg 2+ 阳离子分别替代三价的La 3+ 和Ga 3+ 掺入LaGaO 3 (LSGM)后，由于电荷的补偿作用，产生大量可移动的氧空位，造成LSGM材料700℃的氧离子电导是传统氧化钇温定的氧化锆(YSZ)固体电解质的四倍。文献报道La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 O 2.815 配比具有最好的氧离子电导，因此有望成为更有前途的中温燃料电池电解质材料。 人们普遍认为在离子导体中不适宜掺杂过渡金属阳离子，因为过渡金属阳离子的掺杂会出现n型或p型电导。然而，过渡金属元素部分替代Ga似乎是改变LSGM电解质电学性能的有效手段 [ 7 ] [ 8 ] [ 9 ] [ 13 ]。目前人们已经研究了过渡金属元素Cr、Mn、Fe、Co和Ni的Ga位替代对于LSGM电解质电学性能的影响 [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 13 ]。结果显示Ni、Mn和Cr的掺杂将使LSGM电解质的电子和空穴电导得到提高，而Fe和Co掺杂的LSGM电解质则会产生较高的氧离子电导 [ 8 ] [ 9 ] [ 13 ]。对所有过渡金属阳离子掺杂的研究发现，在Ga位掺杂Co对于提高LSGM电解质的氧离子电导最为有效 [ 5 ] [ 7 ] [ 9 ] [ 13 ]。我们采用激光快速合成技术合成了纯的及Co掺杂的LaGaO 3 电解质La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 (x = 0， 0.05， 0.085， 0.10， 0.15)，并且研究了Co掺杂对于La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 O 2.815 电解质电学性能的影响。
system: [SYSTEM]

user: 2. 实验步骤 六个系列的样品La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 (x = 0， 0.05， 0.085， 0.10， 0.15， 0.085)采用起始材料La 2 O 3 (99.99%)、Ga 2 O 3 (99.99%)、MgO (99.99%)、SrCO 3 (99%)和Co 2 O 3 (99.9%)来合成。称重前MgO和La 2 O 3 在炉子中1000℃预烧7 h以分解其中的碳酸盐和氢氧化物杂质，试剂中杂质的有无通过x射线衍射(X-ray diffraction， XRD)来判定。原料混合物在研钵中研磨2 h，然后用单轴冷压机采用钢制模具在10 MPa的压强下压成40 mm × 5 mm × 5 mm的立方棒或直径为15 mm厚度为3.0 mm的圆片。压制好的立方棒烧结前在烘箱中100℃干燥2 h。前五个系列的样品使用5 kW连续波CO 2 激光器采用激光快速合成技术合成。激光束照射在距离焦点为120 mm的样品上，激光打在样品上的光斑直径大概为12 mm。随着激光束在前面沿着立方棒的长度方向移动，制备的样品在后面自然快速冷却至室温。前五组样品采用优化的合成条件(激光功率1100 W和光束扫描速度1 mms -1 )来制备。激光快速合成技术是一种快速合成工艺，采用此技术样品能够在数十秒内合成。为了进行对比，最后一组样品La 0.8 Sr 0.2 Ga 0.83 Mg 0.085 Co 0.085 O 2.815 使用压制好的圆片采用固相反应法首先1250℃烧结10 h，然后1500℃烧结6 h，最后1600℃烧结2 h合成。所有烧结样品的密度通过阿基米德原理测量。 室温下样品的相组成使用X’Pert PRO X-Ray Diffractometer仪器进行x射线衍射进行分析，样品的微观结构使用JSM-6700F扫描电子显微镜(SEM)进行研究。激光烧结后的立方棒激光激光重新熔融，并打磨成不同尺寸的圆柱体和长方体：Φ8.50 mm × 3.40 mm (x = 0.0)，Φ13.72 mm × 4.20 mm (x = 0.05)，10.00 mm × 6.97 mm × 3.94 mm (x = 0.085)，Φ10.50 mm × 2.72 mm (x = 0.10) and Φ10.40 mm × 3.26 mm (x = 0.15)，而固相反应法制备的样品则被打磨成6.40 mm × 5.52 mm × 2.50 mm的长方体来进行电导率的测试。这些圆柱体和长方体的双面涂上铂浆，并通过铂网与铂丝连接，最后在炉子中1223 K烧结30 min。空气中样品的总电导率随温度(250℃~800℃)的变化使用Parstat 2273 (Princeton Applied Research)仪器采用交流阻抗谱进行测量，测试的频率范围为0.1~10 6 Hz。测得的阻抗谱采用ZSimpWin 3.0软件进行拟合得到样品的电阻值。论文所提供的电导率均为1 cm 2 × 1 cm样品的电导率值。
system: [SYSTEM]

user: 3. 相组成 图1显示了两种方法制备La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 样品的XRD图，激光快速合成技术：(a) x = 0；(b) x = 0.05；(c) x = 0.085；(d) x = 0.10；(e) x = 0.15和(f)固相反应法x = 0.085。通过与PDF卡片的对比可以看出：高纯La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 钙钛矿可以通过激光快速合成技术合成，除了x = 0.15配比的含有少量第二相LaSrGa 3 O 7 。随着Co掺杂量的增加高角度的衍射峰发生劈裂，表明了晶体对称性的降低。此外，随着Co含量的增加衍射峰向高角度移动意味着晶格中Co在Ga位的固溶已经实现 [ 9 ]，并且随着Co掺杂量的增加晶格常数逐渐变小，这是因为六配位的Co 3+ 离子半径(63 pm)小于Mg 2+ 离子半径(66 pm)，接近六配位的Ga 3+ 离子半径(2 pm) [ 9 ]，因此随着Co掺杂量的增加晶格参数呈减小的趋势。
system: [SYSTEM]

user: 4. 微观结构 图2分别显示了两种方法制备La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 −x Co x O 2.815 电解质的横断面SEM图，激光快速合成技术：(a) x = 0；(b) x = 0.05；(c) x = 0.085；(d) x = 0.10；(e) x = 0.15和(f)固相反应法x = 0.085。图2(f)可以看出固相反应法制备的La 0.8 Sr 0.2 Ga 0.83 Mg 0.085 Co 0.085 O 2.815 样品由密堆的球形颗粒组成，与其他文献报道的LSGMs和Co掺杂LSGMs的微观结构相似 [ 10 ] [ 11 ] [ 12 ]，而激光快速合成技术制备的样品则是由有序或定向的矛状(2a and 2c)或叶状晶粒(2b， 2d and 2e)生长形成的，呈现出十分独特的微观结构，这样的微观结构在之前LSGMs和Co掺杂LSGMs的研究中未曾观察到。激光快速合成技术合成样品的平均晶粒尺寸大约在20~50 mm (2a， 2b， 2d and 2e)，或者在宽度上大于50 mm长度上甚至远远超过50 mm。激光快速合成技术制备的x = 0，0.05，0.085，0.10，0.15样品及固相反应法合成x = 0.085样品的相对密度分别为97.2%、96.1%、98.7%、98.5%、98.1%和97.1%，表明两种方法制备的不同Co掺杂量La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 −x Co x O 2.815 的致密度没有明显的差异。 图1. 两种方法制备La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 样品的XRD图，激光快速合成技术：(a) x = 0；(b) x = 0.05；(c) x = 0.085；(d) x = 0.10；(e) x = 0.15和(f)固相反应法x = 0.085 图2. 两种方法制备La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 − x Co x O 2.815 样品的横断面SEM图，激光快速合成技术：(a) x = 0；(b) x = 0.05；(c) x = 0.085；(d) x = 0.10；(e) x = 0.15和(f) 固相反应法 x = 0.085
system: [SYSTEM]

user: 5. 电学性能 为了研究样品的电学性能，我们在空气中测试了250℃~700℃激光快速合成技术(x = 0， 0.05， 0.085， 0.10， 0.15)和固相反应法(x = 0.085)合成La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 样品的交流阻抗谱，并通过对实验数据进行等效电路拟合后计算得到样品的总电导率。 表1列出了计算得到的样品在250℃至800℃的总电导率。从表中可以明显看出，Co掺杂能够使La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 O 2.815 电解质的总电导率得以提高，并且除了x = 0.15之外，随着Co含量的增加样品的总电导率呈总体增加的趋势。激光快速合成技术合成La 0.8 Sr 0.2 Ga 0.83 Mg 0.085 Co 0.085 O 2.815 电解质在600、700和800℃的总电导率分别达到0.067、0.124和0.202 Scm −1 ，明显高于固相反应法制备的同样配比样品的电导率(0.026， 0.065 and 0.105 Scm −1 )，尽管二者具有相似的纯度和致密度。激光快速合成技术制备样品的高电导率主要是由于其独特的微观结构造成的：相对定向生长的矛状或叶状晶粒具有较大和规则的晶粒尺寸及高的相对密度，这些都极大的降低了载流子在迁移运动中散射的可能，从而使它们的电导率得到提高。 Table 1 Electrical properties of La0.8Sr0.2Ga0.83Mg0.17−xCoxO2.815 samples synthesized by laser rapid synthesis technology (x = 0， 0.05， 0.085， 0.10， 0.15) and solid state reaction method (x = 0.085 Co含量x 总电导率(Scm − 1 ) 电导活化能(eV) 600˚C 700˚C 800˚C 250˚C~450˚C 450˚C~600˚C 600˚C~800˚C LRS x = 0 0.018 0.047 0.090 0.64 0.69 0.74 x = 0.05 0.032 0.069 0.114 0.53 0.56 0.59 x = 0.085 0.067 0.124 0.202 0.37 0.39 0.53 x = 0.10 0.091 0.134 0.165 0.25 0.30 0.32 x = 0.15 0.073 0.095 0.122 0.28 0.28 0.29 SSR x = 0.085 0.026 0.065 0.105 0.72 0.67 0.64 表1. 激光快速合成技术(x = 0， 0.05， 0.085， 0.10， 0.15)和固相反应法(x = 0.085)合成La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 − x Co x O 2.815 样品的电学性能 图3分别显示了激光快速合成技术(x = 0， 0.05， 0.085， 0.10， 0.15)和固相反应法(x = 0.085)合成La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 样品总电导率的Arrhenius曲线。从图中可以看出随着Co含量的增加，激光快速合成技术合成样品的Arrhenius曲线斜率逐渐减小，这表明随Co含量的增加电导活化能逐渐减小，并且固相反应法制备La 0.8 Sr 0.2 Ga 0.83 Mg 0.085 Co 0.085 O 2.815 样品的活化能要明显高于同样配比激光快速合成技术合成样品。表1也列出了激光快速合成技术(x = 0， 0.05， 0.085， 0.10， 0.15)和固相反应法(x = 0.085)合成La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 样品的电导活化能。其中Co含量x ≤ 0.085样品的电导活化能接近文献报道的具有相似配比样品的活化能数值 [ 9 ] [ 11 ] [ 12 ]。 图3. 激光快速合成技术(x = 0， 0.05， 0.085， 0.10， 0.15)和固相反应法(x = 0.085)合成La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 − x Co x O 2.815 样品总电导率的Arrhenius曲线 图4显示了激光快速合成技术合成样品的电导活化能随Co掺杂量的变化曲线。电导活化能是在600℃~800℃温度范围进行估算的。显而易见，随着Co含量的增加电导活化能不断减小直到Co含量达到8.5 mol%，当Co含量进一步增加时活化能出现了陡然下降的趋势，该趋势与文献报道其他配比Co掺杂LSGMs活化能的规律相一致 [ 9 ] [ 11 ] [ 13 ]。Co含量大于8.5 mol%时活化能的陡然下降表明空位电导逐渐起主要作用 [ 9 ] [ 13 ]。高温区激光快速合成技术合成x = 0.085样品的活化能降低至0.53 ev，达到了Khorkounov et al.发现的Co掺杂LSGM的离子电导活化能的范围0.51~0.68 eV [ 14 ]，这一点意味着在高温区x = 0.085样品的氧离子电导占主导。然而，激光快速合成技术制备的x ≥ 0.10样品的电导活化能要远远低于文献报道离子电导活化能的范围。 图4. 激光快速合成技术合成样品的电导活化能随Co掺杂量的变化曲线
system: [SYSTEM]

user: 6. 结论 我们采用激光快速合成技术(LRS)制备了应用于中温SOFC的La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 (x = 0， 0.05， 0.085， 0.10， 0.15)电解质，从合成样品的相组成、微观结构和电学性能出发，研究了Co掺杂对于La 0.8 Sr 0.2 Ga 0.83 Mg 0.17 O 2.815 电解质性能的影响，并且与传统固相反应法制备的样品进行了对比。总结如下： 1) 合成方法和相分析：激光快速合成技术适用于合成可控配比的高纯的Co掺杂LSGMs电解质。随着Co含量的增加XRD衍射峰向高角度移动表明晶格常数逐渐变小，这是因为Mg 2+ 离子被六配位的Co 3+ 离子取代，而六配位的Co 3+ 离子半径小于Mg 2+ 离子半径，因此随着Co掺杂量的增加晶格参数呈减小的趋势。 2) 微观结构：激光快速合成技术制备的样品由有序或定向的矛状或叶状晶粒生长形成的，呈现出十分独特的微观结构，这种微观结构在有关LaGaO 3 基电解质的文献中未见报道。如此独特的微观结构主要是由于受到液滴状熔池中热量定向传输的影响形成了相对定向的晶粒生长。 3) 电学性能：激光快速合成技术制备的La 0.8 Sr 0.2 Ga 0.83 Mg 0.17−x Co x O 2.815 电解质呈现出比固相反应法更加优越的电学性能。其中最佳配比La 0.8 Sr 0.2 Ga 0.83 Mg 0.085 Co 0.085 O 2.815 在600℃、700℃和800℃的总电导率分别达到0.067、0.124和0.202 Scm −1 ，明显高于固相反应法制备的同样配比样品的电导率(0.026， 0.065 and 0.105 Scm −1 )因此采用激光快速合成技术制备的La 0.8 Sr 0.2 Ga 0.83 Mg 0.085 Co 0.085 O 2.815 有望作为中温固体氧化物燃料电池电解质的理想选择之一，其总电导的提高是由于在激光快速合成过程中产生的独特的微观结构造成的。
system: [SYSTEM]

user: 摘要 磷酸奥司他韦(商品名：达菲)是最有效的口服抗流感神经氨酸酶抑制剂之一，广泛用于A型和B型流行性感冒预防与治疗，小儿手足口病的治疗，磷酸奥司他韦对治疗流感病毒有独特的优势，但此前曾多次报道过服用此药后而导致呕吐、急性呼吸窘迫综合征、心跳加速等副反应，甚至有过自杀的案列。近几年来该药的滥用，有关人员发现的其代谢物对环境产生的一定影响，磷酸奥司他韦(OP)对人体产生的毒副作用及其对环境的影响加速了科研人员对其药物及代谢物进行分析检验，该文综述了近几年国内外对达菲的最新研究进展成果，希望可以为该药的探究进展提供更有效的信息。
system: [SYSTEM]

user: 1. 引言 磷酸奥司他韦，别名可威，商品名达菲，分子式为C 16 H 28 N 2 O 4 ∙H 3 PO 4 ，性状为白至黄白色粉末，系统(IUPAC)名称：乙基(3R， 4R， 5S)-5-氨基-4-乙酰氨基-3-(戊烷-3-yloxy)环己-1-烯-1-羧酸盐磷酸。结构图如图1所示。奥司他韦是一种抗病毒药物，通过切断病毒与宿主细胞的化学联系来减缓流感病毒在体内细胞之间的传播药物时间至0.5~1天。该药常以口服胶囊、悬浮液剂型销售 [ 1 ]。流感病毒对于我们来说并不陌生，是除了人类免疫缺陷病毒(HIV)研究最广泛的感染病毒，但在改变流感感染机制的研究进程依旧没有进展 [ 2 ] [ 3 ]。目前全球社会中，像H5N1这种具有高侵略性、易变异、传染性强的流感病毒株，一旦发生毒株变异就会引发一种致命的大流行病，就像严重的急性呼吸综合征冠状病毒2 (sars-cov-2)感染一样在大范围内感染 [ 1 ] [ 2 ] [ 3 ]。突变的耐药流感病毒株的激增，促使我们需要继续扩大研究范围，发现更加有疗效的神经氨酸酶抑制剂预防流感的爆发。当前所用的抗流感药物是通过一系列构效关系，而开发新型有效的神经氨酸酶抑制剂模板 [ 1 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ]。对新的和更好的疗效的药物的研究仍然是当务之急，更为重要的是开发高效的合成程序来保护人类免受流感的折磨，提高目前抗流感药物的可用性。磷酸奥司他韦作为抗流感神经氨酸酶抑制剂对治疗流感病毒有独特优势，但相关报道指出在该药的广泛应用中发现了一些潜在危害，有儿童服用OP后引起精神错乱、器官衰竭、幻觉等严重的副作用 [ 9 ]，一位日本小男孩服用该药从公寓跳下身亡，这是日本发生的第18起服用该药死亡案例，美国食品药品管理局也曾警惕医生和家长谨慎服用此药，并密切观察孩子身体状况，日本和美国对“达菲”可能产生的副作用进行调查研究 [ 10 ]，不仅仅是药物本身的毒副作用，药物的代谢物也会污染环境，研究指出药物和个人护理产品(PPCPs)对环境污染产生越来越严重的影响 [ 11 ]，其具有的生物活性对水生生物生存发展产生潜在危险，OP对环境的危害主要是经人体摄入体内吸收后排泄，微量代谢物经过废水处理 [ 12 ] [ 13 ]，排放到水环境中导致野生动物中抗OP菌株的发展 [ 14 ]，不仅会破坏自然生态系统，甚至会在一些国家爆发流感大流行。在中国将OP作为抗病毒兽药(批准560的中国农业部公报)使用是非法的 [ 15 ]，尤其是在家禽业，家禽体内OP残基可能通过食物进入人体内，对人体生命健康造成影响，有关研究表明摄入过量的OP会导致胃肠紊乱 [ 16 ] [ 17 ] 和突然死亡 [ 18 ] [ 19 ] 等严重副反应。综合总体，达菲虽然对流感、禽流感的治疗方面有着特有的疗效，但“达菲”存在威胁生命健康的副作用、其排泄物对水环境的污染、在家禽类摄入供应中OP残留物的检测对人类健康至关重要，加速了我们对磷酸奥司他韦的检测方法的探索。 图1. 磷酸奥司他韦结构 [ 20 ]
system: [SYSTEM]

user: 3. 总结与展望 随着科学技术的进步，虽然多次对达菲药物本身进行优化，但其药品的副反应对人体的伤害，药物代谢物对环境产生的影响，剂型的对药效影响的问题依旧存在，本文论述了近几年科研人员在基础检验方法上进行的突破来检测药品，开发了高稳定性、低成本、操作简单、灵敏度更高的检测方法，但还存在一些问题，需要我们进一步完善，以及药品研制过程产生影响药效的杂质的研究水平还有待提高，开发更加精确，实用的检测方法需要我们继续研究探讨，为人类公共卫生事业付出应有的贡献。
system: [SYSTEM]

user: 摘要 随着虚拟化技术和软件体系结构的不断发展，云函数(也称无服务计算)逐渐成为一种新的计算范式，该范式允许用户直接部署函数代码，而不必关心基础架构，同时能够提供极高的弹性和快速生灭能力。然而，现有的云函数通常运行在功能较为完备的容器中，存在启动延迟高、资源共享度低、镜像构建和分发时间长等问题。本文分析并验证了影响Linux容器启动时延和资源共享的关键因素，提出了面向云函数的超轻量运行时环境构建方法，该方法从资源隔离、资源限制、文件系统、网络通信等方面对运行时环境进行定义，基于操作系统虚拟化技术，通过进一步抽取共享层来提高资源共享度，通过降低网络隔离和控制组操作的性能瓶颈来加快启动速度。根据上述方法实现了超轻量运行时环境引擎FRE (Function Runtime Environment)。实验中，从顺序与并发启动时间、内存资源利用率、镜像大小等方面对FRE与当前主流的Docker容器引擎进行对比实验，验证了FRE在云函数场景下的有效性。
system: [SYSTEM]

user: 1. 引言 传统云计算自上而下可以分为应用层(SaaS)、平台层(PaaS)、基础层(IaaS) [ 1 ]。云函数，也称无服务器计算(Serverless Computing)或函数即服务(FaaS)，是一种新兴的云计算范式，其计算的基本单位是独立的函数。为了保证应用之间的安全性，函数通常在具有受限资源(例如CPU时间和内存)的容器或其他类型的沙箱中执行。与传统的基础架构即服务(IaaS)平台中的虚拟机不同，函数实例仅在调用时启动，并在处理请求后立即进入睡眠状态，租户按服务调用次数收费，无需支付未使用和空闲的资源 [ 2 ]。云函数平台对租户完全隐藏了服务器管理，提供自动弹性伸缩能力以适应负载，这样开发人员就不必关注底层机器的数量和配置，这也为云提供商带来了提高其计算资源效率的机会 [ 3 ]。 相比于传统服务，云函数具有许多新的特性：其计算的基本单位是函数，粒度更细，单主机实例密度更高；函数的运行一般靠事件驱动，运行环境的创建和销毁更加频繁。这些特性使得云函数运行环境面临新的挑战：隔离的细粒度的计算单位降低了资源共享度，尤其是内存资源；频繁的冷启动会给请求的处理带来额外的时间开销 [ 4 ]。因此，云函数的运行环境需要具备快速启动能力和较高的资源利用率。 近年来，容器技术一直是学术界和工业界研究的热点，并广泛用于云函数 [ 5 ] [ 6 ]、微服务、软件开发运维(DevOps)等领域。容器使用操作系统虚拟化技术，利用内核功能来打包和隔离进程，可以作为常规系统进程运行 [ 7 ]。相比于虚拟机，容器具有无可比拟的轻量级优势，其共享主机的内核，镜像文件的体积更小，创建和销毁速度更快。容器通常比传统VM效率更高 [ 8 ]。 尽管容器具有轻量级优势，但将现有以Docker [ 9 ] 为代表的容器作为云函数的运行环境仍然存在一些问题，具体而言：现有容器使用Linux命名空间(Namespace) [ 10 ] 机制来实现多方面的隔离，使用控制组(Cgroup) [ 11 ] 来限制进程可使用的资源，这会对容器的启动速度带来一定的影响；其次，现有容器通常封装了较为完整的操作系统发行版的功能，这会导致在运行多个容器时相同依赖文件被重复加载进内存，造成内存冗余，同时这些功能在运行简短的云函数代码时并不会全部使用到，造成镜像体积大，构建和分发时间长等问题。 容器启动速度和内存资源利用率对租户和云函数提供商都产生很大的影响，尤其是在开源协作自动化平台领域，这类平台允许用户自定义事件处理函数，为了保证安全性，处理函数通常运行在容器中。当收到事件时，系统启动容器并执行用户的函数脚本，执行完成之后立即销毁函数实例，以取得性能和成本的平衡。运行环境具备更快的启动速度和更高的资源利用率将有效提高该类平台的服务能力，同时能够有效节省成本。 本文的主要贡献有3个方面： 1) 通过分析和实验验证了命名空间与控制组对容器启动速度的影响，以及文件隔离对资源共享带来的影响。 2) 提出了一种面向云函数的超轻量运行时环境构建方法，通过降低网络隔离和控制组操作的性能瓶颈来加快启动速度，通过进一步抽象共享层来提高资源共享度，降低镜像体积和构建、分发时间。 3) 基于以上方法实现了面向云函数的超轻量运行时环境引擎FRE，在顺序和并发启动时间、内存资源利用率、镜像大小等方面进行对比实验，验证了所提方法的有效性。 本文第2节介绍容器优化相关的工作，第3节介绍影响Linux容器启动速度和资源共享的关键因素，第4节介绍面向云函数的超轻量运行时环境整体设计，第5节介绍FRE原型实现，第6节介绍实验和结果分析，第7节总结和未来展望。
system: [SYSTEM]

user: 2. 相关工作 类似于从汇编语言到高级编程语言的发展，云计算的发展经历了从裸机，到虚拟机，到容器，再到无服务器计算的变革。无服务器计算代表了云计算发展的下一个前沿，对运行环境的启动速度和资源利用率要求更高，学术界也在不断提出许多优化方案。 一些学者通过精简容器镜像的体积和优化镜像加载方式来提高容器的启动速度。Tyler Harter等设计了能够快速启动容器的新Docker存储驱动程序Slacker [ 12 ]。Slacker基于集中存储，通过优先下载与容器启动相关的文件并延迟加载其它文件来减少容器的部署周期，加快启动速度。CNTR [ 13 ] 将传统容器镜像分为“胖(包含工具)”、“瘦(包含主要应用程序)”两部分，通过优先部署“瘦”镜像并动态加载“胖”镜像来提高启动速度。TotalCOW [ 14 ] 使用写时复制与缓存共享技术来最大程度地减少内存占用和避免不必要的I/O操作。以上方式在一定程度上精简了镜像的体积，加快了容器的部署周期，但并未涉及到命名空间和控制组带来的影响，且内存资源的共享度并未得到提升。 Pipsqueak [ 15 ] 及其后续工作SOCK [ 16 ] 通过创建预热的Python解释器的缓存来提高容器的启动速度，作者首先验证了程序依赖包的加载过程会降低容器的启动速度，然后分析了当前主流的Python包的依赖情况和使用频率，最后通过预先加载常用的函数依赖库到内存中来减少容器启动延迟，同时设计了基于Zygotes的三层缓存策略来进一步加快启动速度。但是这种方式只针对具有相同解释器的函数代码生效，且需要一些特殊机制来选择最合适的解释器和缓存策略，不具有通用性。 SAND [ 17 ] 引入了两级隔离模型来提高无服务器计算的性能。其两级隔离模型的关键思想是不同应用程序之间使用容器来实现较强的隔离机制，同一应用程序的多个副本之间基于进程模型进行隔离，这种方式使得SAND可以快速分配和回收资源，从而降低了函数的启动延迟。在多租户的云函数场景中，安全性至关重要，SAND基于进程的隔离模型无法保证函数实例的强隔离性，且无法对每个进程实例做资源限制，仅适用于弱安全需求的场景中。 尽管基于操作系统虚拟化的容器技术已经广泛应用在包括云函数在内的各个领域中，但一些学者仍在探索一些新的虚拟化实现方式，Unikernal [ 18 ] 便是一种解决方案。Unikernel是一种使用库操作系统(library operating system)构建的专用单一地址空间机器映像 [ 19 ]，仅由一个应用程序及其所依赖的最小的操作系统内核组成，通常可以在裸机或虚拟机管理程序上运行。Filipe Manco等 [ 20 ] 提出了一种基于Xen虚拟化的Unikernel实现方案LightVM，性能评估表明，LightVM的启动速度和并发度都优于传统的容器。尽管定制的Unikernel在镜像大小和启动速度上具有一定的优势，但是Unikernel从静态密封的整体式设备中剥离了进程抽象，从而牺牲了灵活性、效率和适用性。 除此之外，Shillaker [ 21 ] 评估了OpenWhisk在不同级别的吞吐量和并发功能上的响应延迟，确定了通过在运行时中用新的隔离机制替换容器来缩短无服务器框架中启动时间的研究方向。Wang等 [ 2 ] 对主要的无服务器平台做出的许多设计决策进行了逆向分析，为无服务器平台的优化提供了参考依据。McGrath等 [ 22 ] 还研究了现有无服务器框架中的延迟，这些问题对于无服务器运行环境的设计非常重要。
system: [SYSTEM]

user: 3. 容器性能影响因素分析 3.1. 容器启动速度影响因素分析 Linux容器通常使用命名空间(Namespace)机制来实现资源隔离，使用控制组(Cgroup)来限制进程可使用的资源。本节将分别讨论命名空间和控制组对容器启动速度的影响。 3.1.1. 命名空间(Namespace) 命名空间可实现进程资源的隔离，进程只能感知当前所在的命名空间下的资源，无法直接感知其它命名空间下的资源。常用的命名空间包括：IPC (进程间通信)、Network (网络)、Mount (文件系统挂载点)、PID (进程ID)、User (用户和组)、UTS (主机名和NIS域名)。在创建新进程时，可以通过指定资源对应的参数来创建新的命名空间，这样就实现了子进程与父进程资源隔离的效果。 我们首先测试了不启用命名空间和分别启用单个命名空间对进程并发创建时间的影响，结果表明，Network命名空间对进程的并发创建影响较大，而其它5种命名空间则几乎无影响。进一步，我们测试了同时启用6种命名空间和同时启用除Network之外的5种命名空间，然后和不启用命名空间时进程创建时间进行对比，结果如图1所示。其中a为512并发情况，b为1024并发的情况，纵轴为创建进程所需的时间(图中的值为实际值开方后的结果)。可以观察到，同时启用除Network之外的5种命名空间时，和不启用命名空间的性能基本一致。Network命名空间对并发创建进程的影响较大，这是由于Network命名空间之间共享单个全局锁 [ 23 ]，所以在创建新的Network命名空间时，将会因争抢全局锁而导致进程创建延迟非常高。 3.1.2. 控制组(Cgroup) 控制组可限制进程可使用的资源量。控制组把系统中的所有进程组织成一棵棵独立的树，每棵树都包含系统的所有进程，且和一个或者多个subsystem关联，而subsystem被用来限制每个进程组可使用的资源(CPU、内存、网络接口、磁盘IO等)。当创建新的进程时，可以为进程创建新的Cgroup并把进程加入进去，也可以将进程直接加入已有的Cgroup，从而实现进程的资源限制。 为了测试Cgroup对容器启动速度的影响，我们测试了在不同并发度下创建新的Cgroup(create)和重用已有的空闲的Cgroup(reuse)的性能，结果如图2所示。图中横轴为并发操作数，纵轴为操作所需的时间，可以看出，reuse的方式消耗时间较少(<1 ms)，且几乎不受并发度的影响，而create的方式则受并发度影响较大，随着并发创建数量的增多，创建时间会延长。 图1. 命名空间并发创建时间对比 图2. Cgroup并发操作性能对比 3.2. 容器内存资源利用率影响因素分析 容器基于镜像来启动，镜像打包了运行应用所需的所有内容，包括代码、运行时、库、环境变量和配置等。当前容器镜像通常封装了较为完备的文件，这样既可以保证应用运行环境的完备性，也能很好地控制依赖文件的版本，但这种方法却可能导致不同容器依赖的相同文件重复加载进内存，造成内存资源浪费。Docker使用联合文件系统机制在一定程度上提高了内存共享度，但对于其他存储驱动或非同源镜像启动的容器仍然存在内存冗余问题 [ 12 ]。 共享库是实现内存共享的一种关键方式，Linux系统使用虚地址空间机制实现了不同应用所依赖的同一个共享库文件在内存中也只有一份，从而能够有效消除内存冗余，提高资源利用率。Ferreira等人 [ 24 ] 的工作中提到，运行时依赖文件在内存中的冗余程度是影响内存利用率的重要因素。Zhang [ 25 ] 等人通过建立数学模型，分析并量化了共享库与内存资源利用率之间的关系，从理论上证明了容器间即使仅共享一小部分内容，就可以显著提高内存的利用率。 3.3. 小结 通过以上分析可知，网络命名空间和控制组会对容器的创建性能带来一定的损耗，而镜像文件的隔离也造成了内存资源的冗余。网络隔离在传统容器设计中能带来安全性和灵活性，但是在云函数场景中，云函数平台通常具有请求网关，所有请求事件会统一路由到网关，网关预处理后再交给应用函数来处理 [ 8 ] [ 9 ]，这种方式使得网络命名空间的价值很小；在创建容器时，为容器创建新的控制组能简化处理逻辑，但也增加了延迟，而控制组的复用能显著降低容器的创建延迟，因此通过维护控制组资源池的方式能够有效提高容器的创建速度；相比于传统服务，云函数服务仅包含必要的代码，这种特性使得云函数运行环境可以做到非常精简，这也为进一步抽象共享层，提高资源共享度提供了契机。
system: [SYSTEM]

user: 4. 超轻量运行时环境整体设计 上节的分析和结论给云函数运行环境的设计带来很多启发，本节根据前面的结论提出了一种全新的面向云函数的超轻量运行时环境构建方法。 4.1. 超轻量运行时环境 云函数超轻量运行时环境基于两个主要设计目标：1) 降低命名空间和控制组对容器创建带来的时间损耗；2) 提高容器间内存资源的共享度。其设计涉及到资源隔离、资源限制、文件系统、网络通信四个方面。 4.1.1. 资源隔离 为了保证安全性，资源隔离是必要的，我们采用Linux Namespace机制对进程的IPC、Mount、PID、User、UTS资源进行隔离，而根据上一节的分析结果，Network命名空间会对容器的并发创建产生非常大的时间损耗，且网络隔离给云函数带来的价值并不大，因此不进行Network命名空间的隔离。 4.1.2. 资源限制 同样的，为了保证安全性，需要对容器可使用的资源量进行限制，我们基于Linux控制组机制来实现：当创建容器时，会将容器进程加入CPU、内存、设备等资源对应的控制组中，从而将容器最多可使用的资源量限制在指定的阈值内。在上一节的分析中我们发现控制组的并发创建会给容器创建速度带来很大的影响，因此这里采用控制组缓存池机制，如图4所示，容器引擎会预先创建空闲控制组缓存池(Cgroup Pool)，当创建容器时，先从缓存池获取可用的控制组，获取不到时才会执行创建操作。当容器退出时，其绑定的控制组不会被直接删除，而是加入缓存池中以备复用。 4.1.3. 文件系统 从上一节的分析可知，容器之间通过共享库文件可以有效提高内存资源的利用率，为了进一步提高内存资源的共享度，我们重新组织了容器文件系统，进一步抽取出共享层，同一台主机中函数运行所依赖的二进制文件、库文件、依赖包文件和代码及配置文件在磁盘中仅有一份，且在内存中也只加载一份，这种方式有效降低了磁盘和内存冗余。其与Docker容器结构的主要差别如图3所示。 图4展示了容器的文件系统，根据文件是否可以被共享，可以将文件分成2类：只读文件和可读写文件。只读文件具体包括二进制文件(bins)、动态链接库文件(libs)、代码和配置文件(codes)、函数依赖包文件(packages)，同时为了保证容器内进程的正确运行，还只读挂载载了主机的/sys，/proc等目录(图中未画出)，由于这类文件可被多个容器共享，因此通过只读的方式防止进程恶意操作是有意义且必要的。另一类是可读写文件，具体包括Unix Domain Socket文件和一个可读写的目录workDir。Unix Domain Socket文件用来实现容器进程和容器引擎之间的通信。考虑到函数运行过程中产生需要持久化存储的数据，因此文件系统还包括一个可读写的目录workDir，该目录是租户级别隔离的，同一租户下的所有函数实例均能以读写的方式访问该目录，并且该目录中的文件在主机中持久化存储，不会随容器的删除而删除。 容器所需的文件通过硬链接的方式组织到单独的目录中，并把这个目录作为容器文件系统的根目录挂载点。不同容器中依赖的只读文件会统一映射到主机文件，所以容器间相同的依赖文件具有相同的索引节点号，因此这些文件在磁盘中仅有一份，在内存中也仅有一份。 4.1.4. 网络通信 我们使用Unix Domain Socket机制来实现容器进程与容器引擎之间的通信，如图3所示，Unix Domain Socket文件由容器引擎生成，并被挂载到容器中，容器进程可通过此文件与容器引擎之间建立双向通信通道，后续所有的数据、控制指令等消息均可通过此通道来进行通信。 图3. 2种容器的架构对比 图4. 超轻量运行时环境系统架构 图5. 运行时环境创建流程 4.2. 运行时环境创建流程 图5展示了容器化的运行时环境的创建过程，具体来说：1) 容器引擎首先调用内核的mount系统调用，为容器挂载文件系统；2) 容器引擎调用clone系统调用创建容器的根进程，同时指定生成新的命名空间，这里不包括网络命名空间；3) 创建出来的子进程作为容器的根进程，然后根进程执行chroot操作，更改根目录；4) 容器引擎从缓存池中获取或者创建新的Cgroup，然后调用内核函数将容器进程加入Cgroup中，以限制进程的可用资源量；5) 容器内的根进程准备函数所需要的上下文信息，然后调用exec系统调用创建函数进程，随后开始执行函数。 4.3. 函数镜像与仓库 Docker容器镜像通常封装了较为完整的功能，保证了容器运行环境的一致性和可移植性，Docker采用分层的方式来组织镜像，并实现了容器镜像的配置化，用户使用Dockerfile可以完整构造出一个镜像。基于云函数所需运行环境精简的特点，我们对云函数的镜像做了超轻量处理，其仅包含函数运行所依赖的文件，同时提出了运行时环境描述模版，通过模版可以生成函数环境镜像。运行时环境描述模版指明了函数运行所需的基础运行环境(如Python、Java、Nodejs等)、函数依赖包、函数代码和配置等文件。云函数远程镜像仓库包含了各类语言的基础运行环境。当构造函数镜像时，会根据模版从云函数远程镜像仓库下载相应语言的基础运行环境，函数依赖包文件从当前主流的包管理平台(如PyPI、NPMjs、MvnRepository等)下载，为了保证用户的代码和配置的安全性，代码和配置文件会从指定的私有代码托管平台下载，下载完成后，再根据环境描述模版将这些文件的硬链接组织到指定的目录中，函数镜像即生成完成。
system: [SYSTEM]

user: 5. FRE原型实现 本节基于上一节提到的方法实现了面向云函数的超轻量运行时环境原型FRE (Function Runtime Environment)。FRE的整体架构如图6所示，其主要包含LRE Engine、FRE Local Registry、Remote Registry 3个部分。 图6. FRE超轻量运行时环境引擎架构图 FRE Engine是事件处理和超轻量运行时环境的管理核心，我们基于Golang编程语言实现。Engine中的Gateway以REST API的形式对外暴露服务，负责接收并解析所有外部的HTTP请求，然后再路由到具体的处理模块；Engine负责云函数运行时环境全生命周期的管理，具体包括运行时环境的创建、启动、删除等操作，这些操作均使用Linux内核提供的原生接口；Engine还负责运行时环境镜像的构建工作，包括解析运行时环境模版、从远程仓库拉取文件、生成运行时环境的文件系统等。 FRE Local Registry是主机本地函数依赖环境仓库，包含了运行时环境所依赖的二进制文件、共享库文件、依赖包文件和函数代码等文件，这些文件被所有的运行时环境所共享。FRET (Function Runtime Environment Template)类似于Docker镜像，根据运行时环境描述模版生成，其内部包含了函数运行所依赖的文件，可作为函数运行时环境的文件系统。当构建FRET时，Engine根据环境描述模版首先从本地仓库中查找文件，查找不到时再从远程仓库拉取到本地。运行时环境描述模版采用YAML格式，定义了FRET唯一标识、版本、基础环境、函数代码、附加共享库、依赖包、资源限制等基本属性。 Remote Registry作为远程仓库，负责依赖文件的存储和分发。其中Code Repository为租户私有代码仓库，存放函数代码和配置；FRE Remote Registry存放各类语言的基础环境，主要包含二进制文件和共享库文件；Third-Party Registry为各类第三方公共服务，例如pip、npm、mvn等仓库，公共仓库提供了完善的存储和分发能力，使用第三方公共仓库服务能够利用已有资源，显著降低系统的复杂度。
system: [SYSTEM]

user: 6. 实验结果与分析 本节我们将FRE引擎与Docker引擎进行性能对比评估，主要从容器顺序和并发启动时间、容器内存占用情况、容器镜像文件大小四个方面进行测试，实验环境配置为：8核Intel Xeon E5 2.20 GHz处理器；16 GB LPDDR3内存；128GB PCIeNVMe高速固态硬盘；操作系统为Centos 7.6.1810 64位，内核版本为3.10.0-957.el7.x86_64；Docker Server为官方Community 19.03.1版本；FRE为0.1版本，基于go1.15.2构建。根据上述配置，我们准备了3台相同配置的主机用于对比实验。 6.1. 启动时间 本节对FRE和Docker容器引擎顺序和并发启动实例的时间进行了测试。我们使用Golang语言构建了专门的测试程序，该程序启动时输出当前纳秒级的时间戳，然后进入睡眠状态等待终止信号。通过记录容器启动时刻的时间戳和测试程序输出的时间戳可以计算出容器启动花费的时间。我们基于该测试程序分别构建了FRE和Docker镜像，作为容器启动时间基准测试镜像。 顺序启动：我们在相同的系统环境下分别使用FRE和Docker进行连续启动容器实例测试，容器基于前面构建的基准测试镜像启动，每组测试仅连续启动的实例数量不同，结果如图7所示。Docker容器的平均启动时间大于400 ms，且随着连续启动数量的增加，平均启动时间也有所上升(>10 ms)。FRE容器的平均启动时间在20 ms左右，且随着连续启动数量的增加，平均启动时间增幅较小(≤2 ms)。相比于Docker，FRE在连续启动不同数量的容器时，启动时间均下降了95%以上，启动速度得到大幅提升。 并发启动：云函数具有快速弹性伸缩的特性，因此容器的并发启动性能至关重要。我们对FRE和Docker的并发启动性能进行了测试，这里复用了顺序启动中的测试方法和测试环境，在创建容器时，将顺序启动改为并发启动。图8展示了FRE和Docker在不同并发量下实例启动时间的累积分布函数(CDF)图，纵坐标为实际值取以2为底的对数后的值。从图中可以看出，在不同的并发量下FRE实例的启动时间都远低于Docker容器实例的启动时间。在256并发下，Docker容器的最长启动时间达到了32，820 ms，而FRE实例仅为776ms。相比于Docker，FRE在不同并发数量下的最长启动时间均下降了97%以上。 图7. 容器顺序启动时间对比 图8. 容器并发启动时间对比 6.2. 内存利用率 云函数计算粒度更小，有效的内存利用将显著提高单机函数实例的密度，本节针对FRE和Docker容器实例进行内存使用测试。对于FRE，我们构建了Nodejs8、Python2.7、Python3、Java8和PHP5.6这5种语言的基础运行环境；对于Docker，我们使用DockerHub提供的对应版本的镜像。同时针对每种语言的运行环境构建了web应用，然后将web应用放到对应的镜像中，最终每种语言运行环境的Docker镜像和FRE镜像中均包含相同的web应用。 图9. 单类型容器内存占用情况对比 图10. 多类型容器内存占用情况对比 针对以上5种类型的web应用，分别启动相同数量的FRE容器实例和Docker容器实例，然后记录内存使用情况。图9显示了每种类型的容器在单独运行时的平均内存占用情况。由于基于同源镜像的Docker容器可以共享二进制文件和库文件，因此FRE和Docker在单类型的容器内存占用方面差别不大。 为了验证多类型容器间内存共享的情况，我们在不同的时刻启动同类型的Docker和FRE容器实例，并保持容器实例运行，然后记录内存占用情况。同时为了能更全面的测量FRE容器的内存共享情况，我们还在相同配置的主机中直接启动上述5种应用来进行对比测试，结果如图10所示。从图中可以看出，由于非同源Docker容器间无法共享库文件和二进制文件，因此占用的内存与单独启动容器时的内存基本相同。而FRE实现了容器间共享库文件、二进制文件和其他依赖包文件，所以实际占用内存要低，和物理机直接运行的内存占用基本一致。基于FRE启动的容器总内存占用量比基于Docker的方式共减少了约15%，比直接主机启动的方式仅多占用了1%的内存。 6.3. 镜像大小 较小的镜像体积将显著减少镜像构建和分发的时间，也能有效节约磁盘空间。FRE运行环境仅包含应用函数所需的文件，所以具有更轻量的优势，我们将前面构建的5种类型的FRE镜像和Docker镜像进行文件大小对比，结果如图11所示。从图中可以看出，由于FRE运行环境仅包含应用函数所需的文件，所以镜像体积更小。相比于Docker镜像，FRE镜像体积平均减少了60%。 图11. 基础镜像体积对比 综上所述，本文提出的面向云函数的超轻量运行时环境在本地和实际应用测试中，相比于Docker，其顺序和并发启动速度、内存利用率、镜像大小等方面均有显著的提升；相比于直接使用物理机的方式，性能损耗较低，验证了本文所提方法的有效性。
system: [SYSTEM]

user: 7. 总结与未来展望 本文提出了一种面向云函数的超轻量运行时环境构建方法，该方法通过进一步抽取共享层来提高资源共享度，通过降低网络隔离和控制组操作的性能瓶颈来加快启动速度。基于上述方法构建了超轻量运行时环境引擎FRE，最后通过实验验证了FRE相较于主流的Docker容器引擎在顺序和并发启动速度、内存利用率、镜像体积等方面都有明显的提升。 本文实验未涉及到FRE引擎在网络、磁盘I/O、CPU利用率等方面的性能表现，这部分工作将在未来进行补充，同时，函数间通信、镜像安全性等问题也是将来的研究重点。
system: [SYSTEM]

user: 摘要 在现代云计算系统中，通常会有成百甚至上千个云服务器通过多层网络相互连接，在如此大规模的复杂系统中，发生故障是一件很常见的事情。主动性故障管理是表征系统行为并预测云环境下故障动态的一项关键技术。为了预测云环境下的故障情况，我们需要监视系统的执行情况并收集与运行状况相关的运行时性能数据。但是，在新部署或者托管的云系统中，这些数据通常是没有标签的，在这种情况下，基于监督学习的方法是不合适的。在本文中，我们提出了一种使用贝叶斯模型集成的无监督故障检测方法，它可以表征系统的正常运行状态并检测异常行为，由系统管理员验证异常之后，对这些数据打上标签。在我们搭建的Hadoop集群下运用此种方法的实验结果表明，我们的方法可以实现较高的真阳率和较低的错误率。
system: [SYSTEM]

user: 1. 引言 当今时代，数据中心和云计算系统正在变得越来越复杂，同时由于不断地添加和删除系统组件、更改执行环境、频繁更新和升级，它们也在不断地动态变化着 [ 1 ]。经典的可靠性理论和常规方法很少会考虑系统的实际运行状态，因此也无法动态地检测系统运行时的故障，这类方法通常仅适用于设计反映系统长期或者平均运行状态的模型 [ 2 ]。随着云计算系统的复杂性和动态性不断增长，对云环境实行主动故障管理已经成为提高系统可靠性的有效方法，而故障检测方法则成为此类技术的关键 [ 3 ]。故障检测方法利用系统的运行时状态和观察到的故障的历史信息来预测云环境下未来发生的故障，因此能够为资源分配、计算能力的重新配置和系统维护提供有价值的信息。 现有的大多数故障预测方法都是基于统计学习技术 [ 4 ]。他们使用监督学习模型来估计各种性能特征上故障发生的频率。这些方法的基本假设都是已经对训练数据集进行了标记，即对于用于训练预测器的每个数据点，设计人员已经知道它对应的状态是正常执行状态还是故障状态 [ 5 ]。但是，标记的数据在现实世界的云计算系统中并不总是可用，尤其是对于新部署或托管的系统。如何准确预测此类系统中的故障发生是一项不小的挑战。 在本文中，我们提出了使用贝叶斯子模型的方法来动态地预测云计算系统环境中的故障。它以无监督的学习方式工作，并处理未标记的数据集。当云服务器正常运行时，该模型估计收集的运行时性能数据的概率分布，在系统管理员验证了检测到的异常行为之后，将标签添加到这些数据点。通过使用此种方法，我们实现了主动式故障管理框架的原型，并在搭建的Hadoop集群系统上评估了其性能。实验结果表明，本文提出的方法可以准确预测故障动态。 本文的主要工作可以分为以下几个部分： 1. 搭建Hadoop集群来模拟分布式的云环境，并使用工具收集该环境下的性能数据； 2. 对收集到的数据进行清洗，并通过采用基于互信息和PCA的算法来降低维度和特征之间的冗余； 3. 使用基于贝叶斯子模型集合的无监督学习算法来训练分类器，得到性能数据的概率模型，基于此概率模型来判断数据点是否是故障数据； 本文第2节介绍云环境下故障检测的相关工作，第3节介绍本文的整体实验架构，包括搭建模拟环境、采集性能数据、提取特征、训练分类器等，第4节展示了此框架在我们模拟环境下的实验结果，第5节为总结和未来展望。
system: [SYSTEM]

user: 2. 相关工作 近年来，云平台故障诊断技术在工业与学术界均引起了广泛关注，在云计算系统上的故障检测也有了丰富的研究成果 [ 6 ]。目前国内外关于云环境故障检测方法主要包括基于心跳策略的检测方法和基于性能数据的检测方法。 基于心跳策略的检测方法主要通过心跳包检测方式，通过对云平台分布式系统不同节点间心跳通信检测来保证系统的稳定性与可用性，云平台属于分布式系统，其故障检测框架大致分为广播型检测框架和层次型检测框架 [ 7 ]。节点间通信模型一般基于以上两种框架，目前应用比较广泛的是动态心跳策略，其核心思想是根据节点间心跳通信的过程动态设置心跳超时限制∆，当心跳包间隔时间超出∆，则认为节点或者进程宕机。文献 [ 8 ] 提出了侦测故障的QoS度量标准，给出了无需统计的高度动态算法，动态估算超时限制∆，修改心跳消息的发送周期，以适应分布式系统中动态变化的节点状况和网络情况。 动态心跳策略适用于绝大部分云计算网络，它能够主动调节检测进程间心跳发送周期来动态适应云计算环境下负载多变的网络状态 [ 9 ]。但是这种方法通常采用统计学方法，比如回归等方式来实现动态心跳规划 [ 10 ]，同时算法需要基于比较大的样本空间，无法处理当样本数据不遵守特定概率特征时的情况 [ 11 ]。此外，心跳策略的决定还需要各个节点的样本特征，每个节点都保存样本特征会导致一定程度的资源浪费，同时不同集群下不同的特征分布可能会误导动态心跳策略，导致心跳策略不合理 [ 12 ]。 基于性能数据的检测方式是通过对云计算运行时产生的性能数据(如CPU、IO、内存、硬盘等)进行错误类别检测 [ 13 ]。基于性能数据的故障检测方法是目前应用最为广泛的方法，主要分为机器学习方法、统计学方法等。文献 [ 14 ] 提出了一种基于模糊KNN算法的云计算故障数据检测方法，它首先利用密度聚类的方法对训练集进行预处理，然后采取模糊熵和互信息相结合的故障特征加权方法，将模糊KNN和分层检测与云计算特征加权结合进行样本训练，最后使用基于最大隶属度的自我学习进行结果检测。文献 [ 15 ] 提出了一种云环境下大规模数据特征的降维算法，它采用基于FastICA的检测样本优化的方法，利用加权相关系数来改进牛顿迭代算法，降低了信息的丢失和时间的消耗。同时引入模拟退火算法来改进隐马尔可夫模型，进而提高了故障的检测率。文献 [ 16 ] 中，ChiragN.Modil提出一种将贝叶斯和Snort结合的故障检测系统，Snort负责收集云计算平台下的数据，利用贝叶斯分类器做未知攻击检测。该方法有效降低了误检测率，同时能够检测到未知故障。 基于云计算性能数据的分析方法同样也存在一些问题，比如在训练样本更新或者有新的未知错误出现时 [ 17 ]。这是由于云环境极其复杂，又经常遭受不同程度的攻击，错误数据类别一直会更新，云环境下的硬件环境也经常会有更新的情况 [ 18 ]，但是很多监督学习算法需要人为判定后再进行训练，这就会导致云计算环境下错误样本集可能存在长期未更新的情况 [ 19 ]。
system: [SYSTEM]

user: 4. 实验结果分析 本文中我们采用TPR (True Positive Rate)、TNR (True Negative Rate)和CDR (Correct Detection Rate)来验证模型的精度。TPR表示模型验证结果准确且样本为健康样本的比例，TNR为模型验证结果准确且样本为故障样本的比例，CDR则是两者的均值。三者的数学表达式如下所示： TNR = TN TN + FP (14) TPR = TP TP + FN (15) CDR = TNRR + TP 2 (16) 由于本文中TPR和TNR的值都受到阈值的影响，因此我们最大化CDR的值作为目标设定阈值。实验中的TNR、TPR、CDR值，阈值和训练时间如图3所示： 图3. TNR、TPR、CDR值，阀值和训练时间 由图中的实验结果可以得知，该分类器能够在一定程度上起到鉴别错误数据的能力，可以通过一段时间内性能数据的报错率来得知云环境中是否出现了故障，当样本采样选择在100份中有超过30份错误数据时，此时能准确识别出故障数据的概率TNR为83%，而误识别正确数据为错误数据的率FNR仅为7%。
system: [SYSTEM]

user: 5. 总结与未来展望 本文提出了一种面向云计算环境下的动态故障检测与诊断方法，通过搭建Hadoop分布式集群来模拟实验所需的云环境，然后通过使用Sysstat工具来收集服务器运行时的性能数据，每分钟记录83个性能指标的值。这些性能指标涵盖了云服务器上各个组件的统计信息，包括CPU使用率、进程创建、任务活动切换、内存和交换空间利用率、分页和页面错误、中断、网络活动、I/O和数据传输、电源管理等等。收集的数据被推送到Hadoop集群中的主服务器上，以进行系统范围内的运行状况分析。 在收集到性能数据后，我们首先对这些数据进行了清洗，对于数据集中存在着缺失值的某些特征项，我们使用其相邻的两个特征值的平均值进行填充，然后将数据解析并转换为统一格式。清洗完数据之后，对数据集进行特征选择，基于互信息(mutual Information)的特征选择算法能够选择出捕获大多数信息的独立特征，最终我们挑选出八个互相独立的特征。接着我们使用PCA算法来减少这8个特征值之间的冗余，实验结果显示第一和第二主成分占原始数据集变量的94.37%以上，因此我们可以进一步将特征维度降至到二维。最后我们使用贝叶斯EM算法训练分类器，以无监督的学习方式检测异常行为，实现了对云环境下故障的动态检测和识别。实验结果表明，我们的方法可以实现较高的真阳率(TPR)和较低的错误率。 在本文的工作中，我们使用贝叶斯EM算法进行故障检测和预测，来实现云环境下的动态故障管理。但同时，我们也注意到即使使用最先进的算法，故障的预测准确率也无法达到100%。在未来的工作中，我们打算探索其它先进的故障检测方法，比如利用反应性故障管理技术(如检查点和冗余执行)来处理错误预测。作为未来的工作，我们将整合这两种故障管理方法来进一步增强云的可靠性。
system: [SYSTEM]

user: 摘要 甘蔗在不同的生育期所需的土壤水分含量不同，为使甘蔗农田的湿度保持在甘蔗所需标准范围内。采用Zigbee传感网络和太阳能供电设计物联网甘蔗自动灌溉系统，系统由Zigbee传感网络、太阳能供电、蓄水灌溉、云服务器等部分构成。在该系统中，通过对分布在不同位置传感器终端节点信息的汇总及处理，再通过GPRS模块上传至云服务器，最终用户通过手机端APP查询甘蔗农田的各种状况并反馈所需操作。系统采用太阳能供电功能，不仅解决了野外长期无人监控的网络节点无人供电的问题，而且还具有供电持久、环保节能等优点，具有良好的应用推广前景。