系統(tǒng)穩(wěn)定性分析

一挠轴、在線日志分析

日志中所包含的內(nèi)容如下圖:

日志中含有的內(nèi)容

常見定位問題的方法如下圖:

常見定位問題的方法

1. 日志分析常用命令

日志分析常用命令

2. 日志分析腳本

sed 編輯器
awk 命令

二、集群監(jiān)控

1. 監(jiān)控指標(biāo)

監(jiān)控指標(biāo)
1.1 load

系統(tǒng)的load被定義為特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均線程數(shù),如果一個(gè)線程滿足以下條件,該線程就會(huì)處于運(yùn)行隊(duì)列中:

  • 沒有處于I/O等待狀態(tài)善玫;
  • 沒有主動(dòng)進(jìn)入等待狀態(tài),也就是沒有調(diào)用wait操作密强;
  • 沒有被終止茅郎。
      每個(gè)CPU的核都維護(hù)了一個(gè)運(yùn)行隊(duì)列,系統(tǒng)的load主要由運(yùn)行隊(duì)列來決定或渤。load的值越大系冗,也就意味著系統(tǒng)的CPU越繁忙,這樣線程運(yùn)行完以后等待操作系統(tǒng)分配下一個(gè)時(shí)間片段的時(shí)間也就越長(zhǎng)薪鹦。一般來說掌敬,只要每個(gè)CPU當(dāng)前的活動(dòng)線程數(shù)不大于3惯豆,我們認(rèn)為它的負(fù)載是正常的,如果每個(gè)CPU的線程數(shù)大于5奔害,則表示當(dāng)前系統(tǒng)的負(fù)載已經(jīng)非常高了楷兽,需要采取措施來減低系統(tǒng)的負(fù)載,以提高響應(yīng)速度华临。
      使用uptime命令查看系統(tǒng)的load:
[log@www ~]$ uptime
 08:44:47 up 260 days, 20:31,  1 user,  load average: 7.07, 6.13, 5.93

各個(gè)列的含義如下:

uptime 命令結(jié)果分析
1.2 CPU利用率

在 Linux 系統(tǒng)下芯杀,CPU 的時(shí)間消耗主要在這幾個(gè)方面,即用戶進(jìn)程雅潭、內(nèi)核進(jìn)程揭厚、中斷處理、I/O 等待扶供、Nice 時(shí)間筛圆、丟失時(shí)間、空閑等幾個(gè)部分椿浓,而 CPU 的利用率則為這些時(shí)間所占總時(shí)間的百分比太援。通過 CPU 的利用率,能夠反映出CPU 的使用和消耗情況轰绵。
  可以通過top 命令來查看Linux系統(tǒng)的 CPU 消耗情況:

[log@www ~]$ top | grep Cpu
%Cpu(s):  5.4 us,  1.4 sy,  0.0 ni, 92.9 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu(s):  4.5 us,  1.2 sy,  0.0 ni, 94.0 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
%Cpu(s):  3.8 us,  1.1 sy,  0.0 ni, 94.9 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st

其中粉寞,CPU 后面跟的各個(gè)列便是各種狀態(tài)下 CPU所消耗的時(shí)間占比尼荆。

各個(gè)列的含義
1.3 磁盤剩余空間

通過df 命令左腔,能夠看到磁盤的剩余空間。

[log@www ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        49G  3.1G   46G   7% /
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
tmpfs            16G  1.6G   15G  10% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/sda2       494M  123M  372M  25% /boot
/dev/sda6       488G  206G  283G  43% /app
tmpfs           3.2G     0  3.2G   0% /run/user/1003
tmpfs           3.2G     0  3.2G   0% /run/user/0
tmpfs           3.2G     0  3.2G   0% /run/user/1000

-h 選項(xiàng)表示按單位格式化輸出捅儒。該命令顯示 sda3一共有49GB 的空間液样,3.1G 已用,剩余46GB 空間可用巧还。
  如果需要查看具體目錄所占用的空間鞭莽,分析大文件所處位置,可以使用 du 命令來進(jìn)行查看:

[log@www ~]$ du -d 1 -h /app
208G    /app/test
944K    /app/scripts
208G    /app

其中-d 參數(shù)用來指定遞歸深度麸祷,這里指定為1澎怒,表示只列出指定目錄的下一級(jí)目錄文件的大小,-h 選項(xiàng)用來進(jìn)行按文件大小單位的格式化輸出阶牍。

1.4 網(wǎng)絡(luò) traffic

通過 sar 命令喷面,可以看到系統(tǒng)的網(wǎng)絡(luò)狀況:

[log@www ~]$ sar -n DEV 1 1 
Linux 3.10.0-327.el7.x86_64 (www.www)   10/23/2017      _x86_64_        (32 CPU)

08:21:22 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
08:21:23 AM      eth0  55716.00  55578.00  11306.84   9979.24      0.00      0.00      0.00
08:21:23 AM      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:21:23 AM      eth2      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:21:23 AM      eth3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:21:23 AM        lo   4511.00   4511.00   1282.70   1282.70      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:         eth0  55716.00  55578.00  11306.84   9979.24      0.00      0.00      0.00
Average:         eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth2      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:         eth3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo   4511.00   4511.00   1282.70   1282.70      0.00      0.00      0.00

-n 選項(xiàng)表示匯報(bào)網(wǎng)絡(luò)狀況,而 DEV 則表示查看的是各個(gè)網(wǎng)卡的網(wǎng)絡(luò)流量走孽,第一個(gè)1表示每1秒抽樣一次惧辈,第二個(gè)1表示總共取一次。輸出結(jié)果的含義如下:

sar 命令輸出結(jié)果分析
1.5 磁盤 I/O

查看系統(tǒng)的I/O 狀況:

[log@www ~]$ iostat -d -k
Linux 3.10.0-327.el7.x86_64 (www.www)   10/24/2017      _x86_64_        (32 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              17.12      1412.58      1728.90 32444667123 39710079394

使用iostat 工具能夠看到磁盤的I/O 情況磕瓷,其中-d選項(xiàng)表示查看磁盤使用情況盒齿,-k 選項(xiàng)表示以 KB為單位顯示念逞。輸出結(jié)果含義如下:

iostat 命令輸出結(jié)果分析
1.6 內(nèi)存使用

通過 free 命令可以查看內(nèi)存的使用情況,加上-m 參數(shù)表示以 MB 為單位:

[log@www ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:          31890       18587        3234         297       10068       12551
Swap:         19999        5767       14232

Linux 的內(nèi)存包括物理內(nèi)存Mem 和虛擬內(nèi)存swap边翁,下面介紹下每一列的含義:

free 命令結(jié)果分析

對(duì)應(yīng)用來說翎承,更值得關(guān)注的應(yīng)該是虛擬內(nèi)存swap 的消耗,swap 內(nèi)存使用的過多符匾,表示物理內(nèi)存已經(jīng)不夠用了审洞,操作系統(tǒng)將本應(yīng)該物理內(nèi)存存儲(chǔ)的一部分內(nèi)存頁調(diào)度到磁盤上,以騰出足夠的空間給當(dāng)前的進(jìn)程使用待讳。當(dāng)其他進(jìn)程需要運(yùn)行時(shí)芒澜,再從磁盤將內(nèi)存的頁調(diào)度到物理內(nèi)存當(dāng)中,以恢復(fù)進(jìn)程的運(yùn)行创淡。而這個(gè)調(diào)度的過程痴晦,則會(huì)產(chǎn)生swap I/O,如果 swap I/O較為頻繁琳彩,將嚴(yán)重地影響系統(tǒng)性能誊酌。
  通過 vmstat命令,可以查看到swap I/O 的情況:

[log@www ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
20  0 5905120 2246828      4 11370556    0    0    44    54    0    0  5  2 93  0  0

其中露乏,swap 列的 si 表示每秒從磁盤交換到內(nèi)存的數(shù)據(jù)量碧浊,單位是KB/s,so 表示每秒從內(nèi)存交換到磁盤的數(shù)據(jù)量瘟仿,單位也是KB/s箱锐。

1.7 qps

qps 是 query per second 的縮寫,即每秒查詢數(shù)劳较。qps 在很大程度上代表了系統(tǒng)在業(yè)務(wù)上的繁忙程度驹止,而每次請(qǐng)求的背后肛度,可能對(duì)應(yīng)著多次磁盤I/O垢油、多次網(wǎng)絡(luò)請(qǐng)求,以及多個(gè) CPU 時(shí)間片虱肄。
  通過關(guān)注系統(tǒng)的qps 數(shù)墓捻,我們能夠非常直觀地了解到當(dāng)前系統(tǒng)業(yè)務(wù)情況抖仅,一旦當(dāng)前系統(tǒng)的 qps值超過所設(shè)置的預(yù)警閾值,即可考慮增加機(jī)器以對(duì)集群進(jìn)行擴(kuò)容砖第,以免因壓力過大而導(dǎo)致宕機(jī)撤卢。集群預(yù)警閾值的設(shè)定,可以根據(jù)當(dāng)前壓測(cè)得出的值厂画,綜合后期的運(yùn)維經(jīng)驗(yàn)凸丸,評(píng)估一個(gè)較為合理的數(shù)值。

1.8 rt

rt 是response time 的縮寫袱院,即請(qǐng)求的響應(yīng)時(shí)間屎慢。響應(yīng)時(shí)間是一個(gè)非常關(guān)鍵的指標(biāo)瞭稼,直接關(guān)系到前端的用戶體驗(yàn)。因此腻惠,任何開發(fā)人員和設(shè)計(jì)師都想盡可能地降低系統(tǒng)的rt 時(shí)間环肘。對(duì)于Web 應(yīng)用來說,如果響應(yīng)太慢而導(dǎo)致用戶失去耐心集灌,將損失大量的用戶悔雹。降低rt 時(shí)間需要從各個(gè)方面入手,找到應(yīng)用的瓶頸欣喧,對(duì)癥下藥腌零。例如,通過部署 CDN 邊緣節(jié)點(diǎn)來縮短用戶請(qǐng)求的物理路徑唆阿;通過內(nèi)容壓縮來減少傳輸?shù)淖止?jié)數(shù)益涧;使用緩存來減少磁盤I/O和網(wǎng)絡(luò)請(qǐng)求等。
  而通過Apache或者Nginx的訪問日志驯鳖,便能夠得知每個(gè)請(qǐng)求的響應(yīng)時(shí)間闲询。以 Nginx 為例,在訪問日志的輸出格式中浅辙,增加$request_time的輸出扭弧,便能夠獲得響應(yīng)時(shí)間。
  CPU记舆、內(nèi)存鸽捻、網(wǎng)絡(luò)、磁盤氨淌、qps 和 rt泊愧。這些對(duì)于所有類型的應(yīng)用都需要關(guān)注伊磺,也有一些指標(biāo)只針對(duì)某一類型的應(yīng)用盛正,如select/ps、update/ps屑埋、delete/ps只針對(duì)數(shù)據(jù)庫應(yīng)用豪筝,thread running只針對(duì)MySQL數(shù)據(jù)庫應(yīng)用,F(xiàn)ullGC只針對(duì)Java 應(yīng)用摘能。

1.9 select/ps

select/ps記錄了數(shù)據(jù)庫每秒處理的 select語句的數(shù)量续崖。對(duì)于 MySQL數(shù)據(jù)庫來說,如果select請(qǐng)求數(shù)量過多团搞,則可以適當(dāng)?shù)卦黾幼x庫严望,以降低系統(tǒng)讀的壓力。

1.10 update/ps逻恐、delete/ps

update/ps 記錄了數(shù)據(jù)庫每秒處理 update語句的數(shù)量像吻,相應(yīng)地峻黍,delete/ps則記錄了數(shù)據(jù)庫每秒處理 delete語句的數(shù)量。對(duì)于MySQL 數(shù)據(jù)庫來說拨匆,如果 update/delete這樣的寫入請(qǐng)求過多姆涩,單單增加讀的slave已經(jīng)解決不了問題,這時(shí)需要對(duì)響應(yīng)的庫進(jìn)行拆分惭每,將請(qǐng)求分散到其它集群骨饿。

1.11 GC

可以對(duì) JVM的一些內(nèi)存參數(shù)進(jìn)行調(diào)整和優(yōu)化,以降低 GC時(shí)應(yīng)用停止響應(yīng)的時(shí)間台腥。如果一個(gè) Java 應(yīng)用頻繁地進(jìn)行Full GC宏赘,我們認(rèn)為它的性能是有問題的。

2. 心跳檢測(cè)

1黎侈、ping
2置鼻、應(yīng)用層檢測(cè)
3、業(yè)務(wù)檢測(cè)

3. 容量評(píng)估及應(yīng)用水位

三蜓竹、流量控制

1. 流量控制實(shí)施

2. 服務(wù)穩(wěn)定性

1箕母、依賴管理
2、優(yōu)雅降級(jí)
3俱济、服務(wù)分級(jí)
4嘶是、開關(guān)
5、應(yīng)急預(yù)案

3. 高并發(fā)系統(tǒng)設(shè)計(jì)

1蛛碌、操作原子性
2聂喇、多線程同步
3、數(shù)據(jù)一致性
4蔚携、系統(tǒng)可擴(kuò)展性
5希太、并發(fā)減庫存

四、性能優(yōu)化

1. 如何尋找性能瓶頸

1酝蜒、前端優(yōu)化工具——YSlow
2誊辉、頁面響應(yīng)時(shí)間
3、方法響應(yīng)時(shí)間
4亡脑、GC 日志分析
5堕澄、數(shù)據(jù)庫查詢
6、系統(tǒng)資源使用

2. 性能測(cè)試工具

2.1 ab

ab 的全稱為 ApacheBench霉咨,用來對(duì) HTTP 服務(wù)器進(jìn)行性能測(cè)試的小工具蛙紫,可以模擬多個(gè)并發(fā)請(qǐng)求來對(duì)服務(wù)器進(jìn)行壓力測(cè)試,得出服務(wù)器在高負(fù)載下能夠支持的 qps 及應(yīng)用的響應(yīng)時(shí)間途戒,為系統(tǒng)設(shè)計(jì)者提供參考依據(jù)坑傅。
  ab的使用:

ab [options] [http[s]://]hostname[:port]/path
常用參數(shù):
-n 總的請(qǐng)求數(shù);
-c 并發(fā)用戶數(shù)量喷斋。

假設(shè)并發(fā)數(shù)為5唁毒,一共執(zhí)行100次請(qǐng)求矢渊,目標(biāo)服務(wù)器為ab -n 100 -c 5 http://www.cnblogs.com,則對(duì)應(yīng)的命令為:
ab -n 100 -c 5 http://www.cnblogs.com/mongo/p/4910249.html

執(zhí)行后的結(jié)果如下:
Server Software:        
Server Hostname:        www.cnblogs.com
Server Port:            80

Document Path:          /mongo/p/4910249.html
Document Length:        15723 bytes

Concurrency Level:      5
Time taken for tests:   0.599 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      1605900 bytes
HTML transferred:       1572300 bytes
Requests per second:    167.03 [#/sec] (mean)
Time per request:       29.935 [ms] (mean)
Time per request:       5.987 [ms] (mean, across all concurrent requests)
Transfer rate:          2619.42 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2    4   2.9      3      14
Processing:    13   25  31.3     16     231
Waiting:       11   16  10.4     14      77
Total:         15   29  31.6     20     234

Percentage of the requests served within a certain time (ms)
  50%     20
  66%     26
  75%     31
  80%     32
  90%     40
  95%     70
  98%    229
  99%    234
 100%    234 (longest request)

其中枉证,幾個(gè)比較重要的指標(biāo)包括:

  • Requests per second為每秒處理的請(qǐng)求數(shù)量矮男,即吞吐量;
  • Time per request 第一個(gè) Time per request 的值為每次并發(fā)所消耗的平均時(shí)間室谚,即請(qǐng)求平均等待時(shí)間毡鉴,第二個(gè)Time per request 的值為每次請(qǐng)求所消耗的平均時(shí)間;
  • Complete requests為完成的請(qǐng)求數(shù)量秒赤;
  • Failed requests為失敗的請(qǐng)求數(shù)量猪瞬。
2.2 Apache JMeter

JMeter 的功能比 ab更為強(qiáng)大,采用純 Java 實(shí)現(xiàn)入篮,支持多種協(xié)議的性能基準(zhǔn)測(cè)試陈瘦,如 HTTP、SOAP潮售、FTP痊项、TCP、SMTP酥诽、POP3等鞍泉;可以用于模擬在服務(wù)器、網(wǎng)絡(luò)或者其他對(duì)象上施加高負(fù)載肮帐,以測(cè)試他們的壓力承受能力咖驮,或者分析他們?cè)诓煌?fù)載的情況下的性能表現(xiàn);能夠靈活地進(jìn)行插件化的擴(kuò)展训枢;支持通過腳本方式的回歸測(cè)試托修,并且提供各項(xiàng)指標(biāo)的圖形化展示。

2.3 HP LoadRunner

LoadRunner 是一款功能極為強(qiáng)大的商業(yè)付費(fèi)性能測(cè)試工具恒界,它通過模擬大量實(shí)際用戶的操作行為和實(shí)時(shí)性能檢測(cè)的方式睦刃,幫助用戶更加快速地查找和確認(rèn)問題。

2.4 反向代理引流

在分布式環(huán)境下仗处,流量真正到達(dá)服務(wù)器之前眯勾,一般會(huì)經(jīng)過負(fù)載均衡設(shè)備進(jìn)行轉(zhuǎn)發(fā),通過修改負(fù)載均衡的策略婆誓,可以改變后端服務(wù)器所承受的壓力。在新版本發(fā)布之前也颤,可以先對(duì)少部分機(jī)器進(jìn)行灰度發(fā)布洋幻,以驗(yàn)證程序的正確性和穩(wěn)定性,并且通過修改負(fù)載均衡策略翅娶,可以改變機(jī)器所承受的負(fù)載文留,達(dá)到對(duì)在線機(jī)器進(jìn)行性能基準(zhǔn)測(cè)試的目的好唯。

2.5 TCPCopy

TCPCopy是一款請(qǐng)求復(fù)制工具,能夠?qū)⒃诰€請(qǐng)求復(fù)制到測(cè)試機(jī)器燥翅,模擬真實(shí)環(huán)境骑篙,達(dá)到程序在不上線的情況下承擔(dān)線上真實(shí)流量的效果。
  TCPCopy 分為TCPCopy Client 和 TCPCopy Server森书,其中TCPCopy Client運(yùn)行在真實(shí)環(huán)境的線上服務(wù)器之上靶端,用來捕獲在線請(qǐng)求數(shù)據(jù)包,而TCPCopy Server則運(yùn)行在測(cè)試機(jī)上凛膏,用來捕獲響應(yīng)包杨名,并將響應(yīng)包的頭部信息傳遞給TCPCopy Client,以完成 TCP 交互猖毫。

3. 性能優(yōu)化措施

3.1 前端性能優(yōu)化

(1)減少頁面的 HTTP 請(qǐng)求數(shù)量
(2)使用 CDN 網(wǎng)絡(luò)
(3)使用壓縮

3.2 Java 程序優(yōu)化

(1)單例
(2)Future 模式
  假設(shè)一個(gè)任務(wù) 執(zhí)行起來需要花費(fèi)一些時(shí)間台谍,為了省去不必要的等待時(shí)間,可以先獲取一個(gè)“提貨單”吁断,即 Future趁蕊,然后繼續(xù)處理別的任務(wù),直到“貨物”到達(dá)仔役,即任務(wù)執(zhí)行完得到結(jié)果介衔,此時(shí)便可以用“提貨單”進(jìn)行提貨,即通過Future 對(duì)象得到返回值骂因。
  如下面的代碼所示炎咖,加載數(shù)據(jù)可能需要花費(fèi)一定的時(shí)間,此時(shí)可以先開始任務(wù)寒波,隨后處理其他事情乘盼,等其它事情都處理完后再取結(jié)果:

    static class Job<Object> implements Callable<Object> {

        @Override
        public Object call() throws Exception {
            return loadData();
        }
    }

    public static void main(String[] args) throws Exception {
        FutureTask futureTask = new FutureTask(new Job());
        new Thread(futureTask).start();

        // do something else

        Object result = (Object) futureTask.get();

    }

FutureTask 類實(shí)現(xiàn)了Future 和Runnable 接口,F(xiàn)utureTask開始后俄烁,loadData()執(zhí)行時(shí)間可能較長(zhǎng)绸栅,因此可以先處理其他事情,等其它事情處理好后页屠,再通過future.get()來獲取結(jié)果粹胯,如果loadData()還未執(zhí)行完畢,則此時(shí)線程會(huì)阻塞等待辰企。

(3)線程池
(4)選擇就緒——NIO
(5)減少上下文切換
(6)降低鎖競(jìng)爭(zhēng)

3.3 壓縮
3.4 結(jié)果緩存
3.5 數(shù)據(jù)庫查詢性能優(yōu)化

(1)合理使用索引
  MySQL 提供了explain 命令风纠,用來解釋和分析SQL 查詢語句,通過explain 命令牢贸,可以模擬查詢優(yōu)化器來執(zhí)行 SQL 語句竹观,從而知道 MySQL是如何執(zhí)行你的語句的。
  舉例來說,現(xiàn)有如下一張表臭增,用來存放用戶的訂單信息:

create table order_info(
order_id int primary key auto_increment,
user_id int,
price int,
good_id int,
good_title varchar(100),
good_info varchar(500)
);

假設(shè)通過order_id(即表的主鍵)來進(jìn)行查詢懂酱,explain的結(jié)果是這樣的:

explain select * from order_info where order_id =1 ;
explain執(zhí)行結(jié)果

explain 詳細(xì)的解釋見:mysql explain執(zhí)行計(jì)劃詳解

(2)反范式設(shè)計(jì)
(3)使用查詢緩存
(4)使用搜索引擎
(5)使用key-value 數(shù)據(jù)庫

3.6 GC 優(yōu)化
3.7 硬件提升性能

五、Java 應(yīng)用故障的排查

1. 常用的工具

1誊抛、jps
2列牺、jstat
3、jinfo
4拗窃、jstack
5瞎领、jmap
6、BTrace
7并炮、JConsole
8默刚、Memory Analyzer(MAT)
9、VisualVM

2. 典型案例分析

六逃魄、參考文獻(xiàn)

性能測(cè)試-ApacheBench
Jmeter使用入門
mysql explain執(zhí)行計(jì)劃詳解
大型分布式網(wǎng)站架構(gòu)設(shè)計(jì)與實(shí)踐——陳康賢著

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荤西,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伍俘,更是在濱河造成了極大的恐慌邪锌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癌瘾,死亡現(xiàn)場(chǎng)離奇詭異觅丰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)妨退,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門妇萄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咬荷,你說我怎么就攤上這事冠句。” “怎么了幸乒?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵懦底,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我罕扎,道長(zhǎng)聚唐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任腔召,我火速辦了婚禮杆查,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宴咧。我一直安慰自己根灯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布掺栅。 她就那樣靜靜地躺著烙肺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪氧卧。 梳的紋絲不亂的頭發(fā)上桃笙,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音沙绝,去河邊找鬼搏明。 笑死,一個(gè)胖子當(dāng)著我的面吹牛闪檬,可吹牛的內(nèi)容都是我干的星著。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼粗悯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼虚循!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起样傍,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤横缔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后衫哥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茎刚,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年撤逢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膛锭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚊荣,死狀恐怖初狰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妇押,我是刑警寧澤跷究,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站敲霍,受9級(jí)特大地震影響俊马,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肩杈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一柴我、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扩然,春花似錦艘儒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽觉增。三九已至,卻和暖如春翻斟,著一層夾襖步出監(jiān)牢的瞬間逾礁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工访惜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘹履,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓债热,卻偏偏與公主長(zhǎng)得像砾嫉,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子窒篱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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