【重識云原生】第六章容器6.1.7.1節(jié)——Docker核心技術(shù)cgroups綜述

??《重識云原生系列》專題索引:

  1. 第一章——不謀全局不足以謀一域
  2. 第二章計算第1節(jié)——計算虛擬化技術(shù)總述
  3. 第二章計算第2節(jié)——主流虛擬化技術(shù)之VMare ESXi
  4. 第二章計算第3節(jié)——主流虛擬化技術(shù)之Xen
  5. 第二章計算第4節(jié)——主流虛擬化技術(shù)之KVM
  6. 第二章計算第5節(jié)——商用云主機方案
  7. 第二章計算第6節(jié)——裸金屬方案
  8. 第三章云存儲第1節(jié)——分布式云存儲總述
  9. 第三章云存儲第2節(jié)——SPDK方案綜述
  10. 第三章云存儲第3節(jié)——Ceph統(tǒng)一存儲方案
  11. 第三章云存儲第4節(jié)——OpenStack Swift 對象存儲方案
  12. 第三章云存儲第5節(jié)——商用分布式云存儲方案
  13. 第四章云網(wǎng)絡(luò)第一節(jié)——云網(wǎng)絡(luò)技術(shù)發(fā)展簡述
  14. 第四章云網(wǎng)絡(luò)4.2節(jié)——相關(guān)基礎(chǔ)知識準(zhǔn)備
  15. 第四章云網(wǎng)絡(luò)4.3節(jié)——重要網(wǎng)絡(luò)協(xié)議
  16. 第四章云網(wǎng)絡(luò)4.3.1節(jié)——路由技術(shù)簡述
  17. 第四章云網(wǎng)絡(luò)4.3.2節(jié)——VLAN技術(shù)
  18. 第四章云網(wǎng)絡(luò)4.3.3節(jié)——RIP協(xié)議
  19. 第四章云網(wǎng)絡(luò)4.3.4節(jié)——OSPF協(xié)議
  20. 第四章云網(wǎng)絡(luò)4.3.5節(jié)——EIGRP協(xié)議
  21. 第四章云網(wǎng)絡(luò)4.3.6節(jié)——IS-IS協(xié)議
  22. 第四章云網(wǎng)絡(luò)4.3.7節(jié)——BGP協(xié)議
  23. 第四章云網(wǎng)絡(luò)4.3.7.2節(jié)——BGP協(xié)議概述
  24. 第四章云網(wǎng)絡(luò)4.3.7.3節(jié)——BGP協(xié)議實現(xiàn)原理
  25. 第四章云網(wǎng)絡(luò)4.3.7.4節(jié)——高級特性
  26. 第四章云網(wǎng)絡(luò)4.3.7.5節(jié)——實操
  27. 第四章云網(wǎng)絡(luò)4.3.7.6節(jié)——MP-BGP協(xié)議
  28. 第四章云網(wǎng)絡(luò)4.3.8節(jié)——策略路由
  29. 第四章云網(wǎng)絡(luò)4.3.9節(jié)——Graceful Restart(平滑重啟)技術(shù)
  30. 第四章云網(wǎng)絡(luò)4.3.10節(jié)——VXLAN技術(shù)
  31. 第四章云網(wǎng)絡(luò)4.3.10.2節(jié)——VXLAN Overlay網(wǎng)絡(luò)方案設(shè)計
  32. 第四章云網(wǎng)絡(luò)4.3.10.3節(jié)——VXLAN隧道機制
  33. 第四章云網(wǎng)絡(luò)4.3.10.4節(jié)——VXLAN報文轉(zhuǎn)發(fā)過程
  34. 第四章云網(wǎng)絡(luò)4.3.10.5節(jié)——VXlan組網(wǎng)架構(gòu)
  35. 第四章云網(wǎng)絡(luò)4.3.10.6節(jié)——VXLAN應(yīng)用部署方案
  36. 第四章云網(wǎng)絡(luò)4.4節(jié)——Spine-Leaf網(wǎng)絡(luò)架構(gòu)
  37. 第四章云網(wǎng)絡(luò)4.5節(jié)——大二層網(wǎng)絡(luò)
  38. 第四章云網(wǎng)絡(luò)4.6節(jié)——Underlay 和 Overlay概念
  39. 第四章云網(wǎng)絡(luò)4.7.1節(jié)——網(wǎng)絡(luò)虛擬化與卸載加速技術(shù)的演進簡述
  40. 第四章云網(wǎng)絡(luò)4.7.2節(jié)——virtio網(wǎng)絡(luò)半虛擬化簡介
  41. 第四章云網(wǎng)絡(luò)4.7.3節(jié)——Vhost-net方案
  42. 第四章云網(wǎng)絡(luò)4.7.4節(jié)vhost-user方案——virtio的DPDK卸載方案
  43. 第四章云網(wǎng)絡(luò)4.7.5節(jié)vDPA方案——virtio的半硬件虛擬化實現(xiàn)
  44. 第四章云網(wǎng)絡(luò)4.7.6節(jié)——virtio-blk存儲虛擬化方案
  45. 第四章云網(wǎng)絡(luò)4.7.8節(jié)——SR-IOV方案
  46. 第四章云網(wǎng)絡(luò)4.7.9節(jié)——NFV
  47. 第四章云網(wǎng)絡(luò)4.8.1節(jié)——SDN總述
  48. 第四章云網(wǎng)絡(luò)4.8.2.1節(jié)——OpenFlow概述
  49. 第四章云網(wǎng)絡(luò)4.8.2.2節(jié)——OpenFlow協(xié)議詳解
  50. 第四章云網(wǎng)絡(luò)4.8.2.3節(jié)——OpenFlow運行機制
  51. 第四章云網(wǎng)絡(luò)4.8.3.1節(jié)——Open vSwitch簡介
  52. 第四章云網(wǎng)絡(luò)4.8.3.2節(jié)——Open vSwitch工作原理詳解
  53. 第四章云網(wǎng)絡(luò)4.8.4節(jié)——OpenStack與SDN的集成
  54. 第四章云網(wǎng)絡(luò)4.8.5節(jié)——OpenDayLight
  55. 第四章云網(wǎng)絡(luò)4.8.6節(jié)——Dragonflow
  56. ?第四章云網(wǎng)絡(luò)4.9.1節(jié)——網(wǎng)絡(luò)卸載加速技術(shù)綜述

  57. 第四章云網(wǎng)絡(luò)4.9.2節(jié)——傳統(tǒng)網(wǎng)絡(luò)卸載技術(shù)

  58. 第四章云網(wǎng)絡(luò)4.9.3.1節(jié)——DPDK技術(shù)綜述

  59. 第四章云網(wǎng)絡(luò)4.9.3.2節(jié)——DPDK原理詳解

  60. 第四章云網(wǎng)絡(luò)4.9.4.1節(jié)——智能網(wǎng)卡SmartNIC方案綜述

  61. 第四章云網(wǎng)絡(luò)4.9.4.2節(jié)——智能網(wǎng)卡實現(xiàn)

  62. 第六章容器6.1.1節(jié)——容器綜述

  63. 第六章容器6.1.2節(jié)——容器安裝部署

  64. 第六章容器6.1.3節(jié)——Docker常用命令

  65. 第六章容器6.1.4節(jié)——Docker核心技術(shù)LXC

  66. 第六章容器6.1.5節(jié)——Docker核心技術(shù)Namespace

  67. 第六章容器6.1.6節(jié)—— Docker核心技術(shù)Chroot

  68. 第六章容器6.1.7.1節(jié)——Docker核心技術(shù)cgroups綜述

  69. 第六章容器6.1.7.2節(jié)——cgroups原理剖析

  70. 第六章容器6.1.7.3節(jié)——cgroups數(shù)據(jù)結(jié)構(gòu)剖析

  71. 第六章容器6.1.7.4節(jié)——cgroups使用

  72. 第六章容器6.1.8節(jié)——Docker核心技術(shù)UnionFS

  73. 第六章容器6.1.9節(jié)——Docker鏡像技術(shù)剖析

  74. 第六章容器6.1.10節(jié)——DockerFile解析

  75. 第六章容器6.1.11節(jié)——docker-compose容器編排

  76. 第六章容器6.1.12節(jié)——Docker網(wǎng)絡(luò)模型設(shè)計

  77. 第六章容器6.2.1節(jié)——Kubernetes概述

  78. 第六章容器6.2.2節(jié)——K8S架構(gòu)剖析

  79. 第六章容器6.3.1節(jié)——K8S核心組件總述

  80. 第六章容器6.3.2節(jié)——API Server組件

  81. 第六章容器6.3.3節(jié)——Kube-Scheduler使用篇

  82. 第六章容器6.3.4節(jié)——etcd組件

  83. 第六章容器6.3.5節(jié)——Controller Manager概述

  84. 第六章容器6.3.6節(jié)——kubelet組件

  85. 第六章容器6.3.7節(jié)——命令行工具kubectl

  86. 第六章容器6.3.8節(jié)——kube-proxy

  87. 第六章容器6.4.1節(jié)——K8S資源對象總覽

  88. 第六章容器6.4.2.1節(jié)——pod詳解

  89. 第六章容器6.4.2.2節(jié)——Pod使用(上)

  90. 第六章容器6.4.2.3節(jié)——Pod使用(下)

  91. 第六章容器6.4.3節(jié)——ReplicationController

  92. 第六章容器6.4.4節(jié)——ReplicaSet組件

  93. 第六章容器基礎(chǔ)6.4.5.1節(jié)——Deployment概述

  94. 第六章容器基礎(chǔ)6.4.5.2節(jié)——Deployment配置詳細說明

  95. 第六章容器基礎(chǔ)6.4.5.3節(jié)——Deployment實現(xiàn)原理解析

  96. 第六章容器基礎(chǔ)6.4.6節(jié)——Daemonset

  97. 第六章容器基礎(chǔ)6.4.7節(jié)——Job

  98. 第六章容器基礎(chǔ)6.4.8節(jié)——CronJob

1. cgroups概述

1.1 為什么需要cgroup

????????在Linux里稻轨,一直以來就有對進程進行分組的概念和需求,比如session group捌肴, progress group等薯演,后來隨著人們對這方面的需求越來越多灼卢,比如需要追蹤一組進程的內(nèi)存和IO使用情況等兑牡,于是出現(xiàn)了cgroup,用來統(tǒng)一將進程進行分組遍蟋,并在分組的基礎(chǔ)上對進程進行監(jiān)控和資源控制管理等吹害。

1.2 cgroups簡介

????????cgroups全稱是control groups,是 Linux 內(nèi)核的一個功能虚青,用來限制它呀、控制與分離一個進程組的資源(如CPU、內(nèi)存、磁盤輸入輸出等)纵穿。它是由 Google 的兩位工程師進行開發(fā)的下隧,自 2008 年 1 月正式發(fā)布的 Linux 內(nèi)核 v2.6.24 開始提供此能力。cgroups 到目前為止谓媒,有兩個大版本淆院, cgroup v1 和 v2 。cgroup 主要限制的資源是句惯、CPU土辩、內(nèi)存、網(wǎng)絡(luò)抢野、磁盤 I/O拷淘。當(dāng)我們將可用系統(tǒng)資源按特定百分比分配給 cgroup 時,剩余的資源可供系統(tǒng)上的其他 cgroup 或其他進程使用蒙保。

????????cgroup 的作用基本上就是控制一個進程或一組進程可以訪問或使用給定關(guān)鍵資源(CPU辕棚、內(nèi)存、網(wǎng)絡(luò)和磁盤 I/O)的量邓厕。一個容器中通常運行了多個進程逝嚎,并且您需要對這些進程實施統(tǒng)一控制,因此 cgroup 是容器的關(guān)鍵組件详恼,為容器虛擬化提供了最基本的保證补君,是構(gòu)建docker一系列虛擬化的管理工具。Kubernetes 環(huán)境使用cgroup 在 pod 級別上部署資源請求和限制以及對應(yīng)的 QoS 類昧互。

????????下圖說明了當(dāng)您將特定比例的可用系統(tǒng)資源分配給一個 cgroup(在本例中挽铁,為cgroup?1)后,剩余資源是如何在系統(tǒng)上其他 cgroup(以及各個進程)之間進行分配的:

cgroup 資源分配及剩余可用資源示例圖

1.3 cgroups基本概念

????????cgroups主要由task敞掘、cgroup叽掘、subsystem及hierarchy構(gòu)成:

  • task:在cgroups中,task就是系統(tǒng)的一個進程玖雁。
  • control group(簡寫:cgroup):控制族群就是按照某種標(biāo)準(zhǔn)劃分的進程更扁,包含一個或多個子系統(tǒng)。Cgroups 中的資源控制都是以控制族群為單位實現(xiàn)赫冬。一個進程可以加入到某個控制族群浓镜,也可從一個進程組遷移到另一個控制族群。一個進程組的進程可以使用 cgroups 以控制族群為單位分配的資源劲厌,同時受到 cgroups 以控制族群為單位設(shè)定的限制膛薛;
  • hierarchy(層級樹):控制族群可以組織成 hierarchical 的形式,既一顆控制族群樹补鼻『遄模控制族群樹上的子節(jié)點控制族群是父節(jié)點控制族群的孩子雅任,繼承父控制族群的特定的屬性;hierarchy由一系列cgroup以一個樹狀結(jié)構(gòu)排列而成增淹,每個hierarchy通過綁定對應(yīng)的subsystem進行資源調(diào)度椿访;hierarchy中的cgroup節(jié)點可以包含零或多個子節(jié)點,子節(jié)點繼承父節(jié)點的屬性虑润;整個系統(tǒng)可以有多個hierarchy成玫。
  • subsystem:Cgroups中的subsystem就是一個資源調(diào)度控制器(Resource Controller),比如CPU子系統(tǒng)可以控制CPU時間分配拳喻,內(nèi)存子系統(tǒng)可以限制cgroup內(nèi)存使用量哭当;子系統(tǒng)必須附加(attach)到一個層級上才能起作用,一個子系統(tǒng)附加到某個層級以后冗澈,這個層級上的所有控制族群都受到這個子系統(tǒng)的控制钦勘。但是資源調(diào)度控制器這個說法也不完全準(zhǔn)確,因為有時我們將進程分組只是為了做一些監(jiān)控亚亲,觀察一下他們的狀態(tài)彻采,比如perf_event subsystem。到目前為止捌归,Linux支持12種subsystem肛响,比如限制CPU的使用時間,限制使用的內(nèi)存惜索,統(tǒng)計CPU的使用情況特笋,凍結(jié)和恢復(fù)一組進程等。

1.3.1 相互關(guān)系

  • 每次在系統(tǒng)中創(chuàng)建新層級時巾兆,該系統(tǒng)中的所有任務(wù)都是那個層級的默認 cgroup(我們稱之為 root cgroup猎物,此 cgroup 在創(chuàng)建層級時自動創(chuàng)建,后面在該層級中創(chuàng)建的 cgroup 都是此 cgroup 的后代)的初始成員角塑;
  • 一個子系統(tǒng)最多只能附加到一個層級蔫磨;
  • 一個層級可以附加多個子系統(tǒng);
  • 一個任務(wù)可以是多個 cgroup 的成員圃伶,但是這些 cgroup 必須在不同的層級质帅;
  • 系統(tǒng)中的進程(任務(wù))創(chuàng)建子進程(任務(wù))時,該子任務(wù)自動成為其父進程所在 cgroup 的成員留攒。然后可根據(jù)需要將該子任務(wù)移動到不同的 cgroup 中,但開始時它總是繼承其父任務(wù)的 cgroup嫉嘀。

????????如圖所示炼邀,CPU 和 Memory 兩個子系統(tǒng)有自己獨立的層級系統(tǒng),而又通過 Task Group 取得關(guān)聯(lián)關(guān)系

1.3.2 cgroups子系統(tǒng)

????????cgroups 為每種可以精細化控制的資源定義了一個子系統(tǒng)剪侮,典型的子系統(tǒng)如下:

  • cpu 子系統(tǒng): 主要限制進程cpu的使用率(也可以理解為限制分配給cpu的core拭宁,最終限制是cpu 利用率的限制洛退;比如一共32core 分配4core ,那這個進程cpu 最大占用率 = 12.5%杰标,所以一個進程可以申請< 1core兵怯,因為最后是轉(zhuǎn)換成比率來控制的;
  • cpu 子系統(tǒng)腔剂,主要限制進程的 cpu 使用率媒区。
  • cpuacct 子系統(tǒng):統(tǒng)計每個進程cpu 使用率的報告,如果達到預(yù)定的上限掸犬,可以采取一定的措施袜漩;
  • cpuset 子系統(tǒng):可以為進程分配單獨的cpu節(jié)點或者mem節(jié)點,可以理解為為進程分配指定的額cpu占有率湾碎,就是精細化控制cpu資源宙攻;
  • memery 子系統(tǒng):可以限制進程memery 最大的使用量;
  • blkio 子系統(tǒng):可以限制進程訪問的塊設(shè)備io介褥;
  • device 子系統(tǒng):可以控制訪問的設(shè)備座掘;
  • net_cls 子系統(tǒng):標(biāo)記cgroups 中的網(wǎng)絡(luò)數(shù)據(jù)包,然后可以使用tc模塊(traffice control) 系統(tǒng)對數(shù)據(jù)包進行控制柔滔;比如namespace NET 的可以通過這個系統(tǒng)讓namespace 內(nèi)進程可以獨立進行網(wǎng)絡(luò)通信溢陪,功能類似于自己單獨的網(wǎng)卡、單獨的帶寬廊遍;
  • net_prio子系統(tǒng):這個子系統(tǒng)用來設(shè)計網(wǎng)絡(luò)流量的優(yōu)先級
  • freezer 子系統(tǒng)嬉愧,可以stop或者start cgroups 管理的進程,就是監(jiān)控進程的狀態(tài)喉前,如果設(shè)置了一直是start狀態(tài)没酣,就去確定環(huán)境是否是ok,如果ok就啟動服務(wù)卵迂;
  • ns子系統(tǒng): 可以控制cgroup的進程訪問不同的namespace裕便;這個配合namespace的功能實現(xiàn)容器的隔離效果;
  • hugetlb子系統(tǒng):這個子系統(tǒng)主要針對于HugeTLB系統(tǒng)進行限制见咒,這是一個大頁文件系統(tǒng)偿衰。

????????這里每一個子系統(tǒng)都需要跟內(nèi)核的其他模塊配合來完成資源的控制,比如對cpu資源的控制改览,需要內(nèi)核的進程調(diào)度模塊根據(jù)cpu子系統(tǒng)的配置來完成下翎;內(nèi)存資源的限制需要內(nèi)核的內(nèi)存模塊根據(jù)memery子系統(tǒng)的配置來完成。

1.3.3 如何查看當(dāng)前系統(tǒng)支持哪些subsystem

????????可以通過查看/proc/cgroups(since Linux 2.6.24)知道當(dāng)前系統(tǒng)支持哪些subsystem宝当,下面是一個例子:

?????????從左到右视事,字段的含義分別是:

  1. subsystem的名字
  2. subsystem所關(guān)聯(lián)到的cgroup樹的ID,如果多個subsystem關(guān)聯(lián)到同一顆cgroup樹庆揩,那么他們的這個字段將一樣俐东,比如這里的cpu和cpuacct就一樣跌穗,表示他們綁定到了同一顆樹。如果出現(xiàn)下面的情況虏辫,這個字段將為0:
    • 當(dāng)前subsystem沒有和任何cgroup樹綁定
    • 當(dāng)前subsystem已經(jīng)和cgroup v2的樹綁定
    • 當(dāng)前subsystem沒有被內(nèi)核開啟
  1. subsystem所關(guān)聯(lián)的cgroup樹中進程組的個數(shù)蚌吸,也即樹上節(jié)點的個數(shù)
  2. 1表示開啟,0表示沒有被開啟(可以通過設(shè)置內(nèi)核的啟動參數(shù)“cgroup_disable”來控制subsystem的開啟).

1.4 cgroups提供的功能

  • 限制進程組可以使用的資源(Resource limiting ):比如memory子系統(tǒng)可以為進程組設(shè)定一個memory使用上限砌庄,進程組使用的內(nèi)存達到限額再申請內(nèi)存羹唠,就會出發(fā)OOM(out of memory)
  • 進程組的優(yōu)先級控制(Prioritization ):比如可以使用cpu子系統(tǒng)為某個進程組分配cpu share
  • 統(tǒng)計進程組使用的資源量(Accounting ):比如使用cpuacct子系統(tǒng)記錄某個進程組使用的cpu時間
  • 進程組隔離(Isolation):比如使用ns子系統(tǒng)可以使不同的進程組使用不同的namespace,以達到隔離的目的鹤耍,不同的進程組有各自的進程肉迫、網(wǎng)絡(luò)、文件系統(tǒng)掛載空間
  • 進程組控制(Control):比如使用freezer子系統(tǒng)可以將進程組掛起和恢復(fù)

參考鏈接?

徹底搞懂容器技術(shù)的基石: cgroup

linux 容器(LXC) 第4章 cgroups_caoshuming_500的博客-CSDN博客

Cgroup原理及使用 - zhrx - 博客園

Linux 基礎(chǔ):cgroup 原理與實現(xiàn)_CGroup_層級_控制

【docker 底層知識】cgroup 原理分析_張忠琳的博客-CSDN博客_cgroup

CGroup的原理和使用_書笑生的博客-CSDN博客_cgroup原理

Docker核心原理之 Cgroup詳解

Linux Cgroups詳解(二) - lisperl - 博客園

Linux Cgroup系列(04):限制cgroup的內(nèi)存使用(subsystem之memory)

Linux Cgroup系列(04):限制cgroup的內(nèi)存使用(subsystem之memory) - SegmentFault 思否

Linux Cgroup系列(01):Cgroup概述

Linux Cgroup系列(01):Cgroup概述 - SegmentFault 思否

深入理解 Linux Cgroup 系列(一):基本概念

深入理解 Linux Cgroup 系列(一):基本概念 - SegmentFault 思否

深入理解 Linux Cgroup 系列(二):玩轉(zhuǎn) CPU

深入理解 Linux Cgroup 系列(二):玩轉(zhuǎn) CPU - SegmentFault 思否

深入理解 Linux Cgroup 系列(三):內(nèi)存 - SegmentFault 思否

本文由[mdnice](https://mdnice.com/?platform=6)多平臺發(fā)布
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稿黄,一起剝皮案震驚了整個濱河市喊衫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杆怕,老刑警劉巖族购,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陵珍,居然都是意外死亡寝杖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門互纯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瑟幕,“玉大人,你說我怎么就攤上這事留潦≈豁铮” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵兔院,是天一觀的道長殖卑。 經(jīng)常有香客問我,道長坊萝,這世上最難降的妖魔是什么孵稽? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮十偶,結(jié)果婚禮上菩鲜,老公的妹妹穿的比我還像新娘。我一直安慰自己惦积,他們只是感情好接校,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荣刑,像睡著了一般馅笙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厉亏,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天董习,我揣著相機與錄音,去河邊找鬼爱只。 笑死皿淋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恬试。 我是一名探鬼主播窝趣,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼训柴!你這毒婦竟也來了哑舒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤幻馁,失蹤者是張志新(化名)和其女友劉穎洗鸵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仗嗦,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡膘滨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稀拐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片火邓。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖德撬,靈堂內(nèi)的尸體忽然破棺而出铲咨,到底是詐尸還是另有隱情,我是刑警寧澤砰逻,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布鸣驱,位于F島的核電站,受9級特大地震影響蝠咆,放射性物質(zhì)發(fā)生泄漏踊东。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一刚操、第九天 我趴在偏房一處隱蔽的房頂上張望闸翅。 院中可真熱鬧,春花似錦菊霜、人聲如沸坚冀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽记某。三九已至司训,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間液南,已是汗流浹背壳猜。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滑凉,地道東北人统扳。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像畅姊,于是被迫代替她去往敵國和親咒钟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容