性能测试-命令篇(五)

一、cpu(进程)

1、top:查看系统整体的内存和cpu使用情况,以及各个进程资源使用情况

[root@k8s-master ~]# top
top - 14:42:31 up 480 days,  5:55,  1 user,  load average: 0.01, 0.03, 0.05
Tasks: 114 total,   2 running, 112 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.3 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3880360 total,   170376 free,   458004 used,  3251980 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3133412 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND               
21376 root      20   0 1120540 158948  13860 S   1.0  4.1   1337:33 YDService             
 1331 etcd      20   0   11.0g  60020    844 S   0.3  1.5   2857:06 etcd                  
26392 root      20   0  673632  12528   1120 S   0.3  0.3  66:11.97 docker-containe       
30311 root      20   0 1091936  10688    744 S   0.3  0.3  12:51.73 sh                    
    1 root      20   0   48288   7840   1720 S   0.0  0.2 274:27.62 systemd               
    2 root      20   0       0      0      0 S   0.0  0.0   0:17.87 kthreadd              
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H          
    6 root      20   0       0      0      0 S   0.0  0.0  97:12.14 ksoftirqd/0           
    7 root      rt   0       0      0      0 S   0.0  0.0  99:28.45 migration/0           
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                
    9 root      20   0       0      0      0 R   0.0  0.0 338:39.80 rcu_sched             
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain         
   11 root      rt   0       0      0      0 S   0.0  0.0   2:08.07 watchdog/0            
   12 root      rt   0       0      0      0 S   0.0  0.0   1:46.56 watchdog/1 

输入top,再输入1,可查看每个cpu的使用情况

 [root@k8s-master ~]# top 
top - 15:13:14 up 480 days,  6:26,  1 user,  load average: 0.00, 0.02, 0.05
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu0  :  1.0 us,  1.0 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3880360 total,   169700 free,   456684 used,  3253976 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3134732 avail Mem 

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND               
8360 root      20   0  680204  14540   2292 S   1.3  0.4 137:03.43 barad_agent           
21376 root      20   0 1120540 157040  13860 S   0.7  4.0   1337:56 YDService             
1331 etcd      20   0   11.0g  60244    844 S   0.3  1.6   2857:12 etcd                  
23539 root      20   0  161892   2192   1552 R   0.3  0.1   0:00.07 top                   
26386 root      20   0 1126056  35352   9664 S   0.3  0.9 136:22.46 dockerd-current       
  1 root      20   0   48288   7840   1720 S   0.0  0.2 274:28.36 systemd               
  2 root      20   0       0      0      0 S   0.0  0.0   0:17.87 kthreadd              
  4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H          
  6 root      20   0       0      0      0 S   0.0  0.0  97:12.17 ksoftirqd/0           
  7 root      rt   0       0      0      0 S   0.0  0.0  99:28.49 migration/0           
  8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                
  9 root      20   0       0      0      0 S   0.0  0.0 338:40.14 rcu_sched             
 10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain

2、ps -ef:查看每个进程的资源使用情况

[root@k8s-master ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2021 ?        04:34:27 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0  2021 ?        00:00:17 [kthreadd]
root         4     2  0  2021 ?        00:00:00 [kworker/0:0H]
root         6     2  0  2021 ?        01:37:12 [ksoftirqd/0]
root         7     2  0  2021 ?        01:39:28 [migration/0]
root         8     2  0  2021 ?        00:00:00 [rcu_bh]
root         9     2  0  2021 ?        05:38:39 [rcu_sched]
root        10     2  0  2021 ?        00:00:00 [lru-add-drain]
root        11     2  0  2021 ?        00:02:08 [watchdog/0]
root        12     2  0  2021 ?        00:01:46 [watchdog/1]
root        13     2  0  2021 ?        01:38:56 [migration/1]
root        14     2  0  2021 ?        01:31:22 [ksoftirqd/1]
root        16     2  0  2021 ?        00:00:00 [kworker/1:0H]

3、ps -aux:查看每个进程的详细资源使用情况

[root@k8s-master ~]# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  48288  7840 ?        Ss    2021 274:27 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S     2021   0:17 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<    2021   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S     2021  97:12 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S     2021  99:28 [migration/0]
root         8  0.0  0.0      0     0 ?        S     2021   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S     2021 338:39 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<    2021   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?        S     2021   2:08 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S     2021   1:46 [watchdog/1]
root        13  0.0  0.0      0     0 ?        S     2021  98:56 [migration/1]
root        14  0.0  0.0      0     0 ?        S     2021  91:22 [ksoftirqd/1]
root        16  0.0  0.0      0     0 ?        S<    2021   0:00 [kworker/1:0H]
root        18  0.0  0.0      0     0 ?        S     2021   0:00 [kdevtmpfs]

4、pidstat 1 5 :每隔1秒输出1组数据,共输出5组数据

[root@k8s-master ~]# pidstat 1 5
Linux 3.10.0-1062.12.1.el7.x86_64 (k8s-master)  05/11/2022  _x86_64_    (2 CPU)

03:14:57 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03:14:58 PM     0     21376    0.00    0.99    0.00    0.99     1  YDService

03:14:58 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03:14:59 PM     0     25773    0.00    1.00    0.00    1.00     1  pidstat
03:14:59 PM     0     26386    0.00    1.00    0.00    1.00     0  dockerd-current

03:14:59 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03:15:00 PM   993      1331    1.00    0.00    0.00    1.00     0  etcd
03:15:00 PM     0     21376    0.00    1.00    0.00    1.00     1  YDService

03:15:00 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03:15:01 PM     0     21376    0.00    1.00    0.00    1.00     1  YDService
03:15:01 PM     0     25773    0.00    1.00    0.00    1.00     1  pidstat

03:15:01 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
03:15:02 PM     0         1    0.00    2.00    0.00    2.00     1  systemd
03:15:02 PM     0         9    0.00    1.00    0.00    1.00     1  rcu_sched
03:15:02 PM     0        13    0.00    1.00    0.00    1.00     1  migration/1
03:15:02 PM    81       778    2.00    0.00    0.00    2.00     1  dbus-daemon
03:15:02 PM     0     13711    0.00    1.00    0.00    1.00     1  systemd-journal
03:15:02 PM     0     21376    0.00    7.00    0.00    7.00     1  YDService
03:15:02 PM     0     25773    0.00    1.00    0.00    1.00     1  pidstat
03:15:02 PM     0     26386    1.00    0.00    0.00    1.00     0  dockerd-current

Average:      UID       PID    %usr %system  %guest    %CPU   CPU  Command
Average:        0         1    0.00    0.40    0.00    0.40     -  systemd
Average:        0         9    0.00    0.20    0.00    0.20     -  rcu_sched
Average:        0        13    0.00    0.20    0.00    0.20     -  migration/1
Average:       81       778    0.40    0.00    0.00    0.40     -  dbus-daemon
Average:      993      1331    0.20    0.00    0.00    0.20     -  etcd
Average:        0     13711    0.00    0.20    0.00    0.20     -  systemd-journal
Average:        0     21376    0.00    2.00    0.00    2.00     -  YDService
Average:        0     25773    0.00    0.60    0.00    0.60     -  pidstat
Average:        0     26386    0.20    0.20    0.00    0.40     -  dockerd-current



用户态 CPU 使用率 (%usr);
内核态 CPU 使用率(%system);
运行虚拟机 CPU 使用率(%guest);
总的 CPU 使用率(%CPU)。

5、/proc是虚拟文件系统,Linux通过/proc向用户空间提供了系统内部状态的信息。其中,/proc/stat提供了系统的CPU和任务统计信息。

[root@k8s-master ~]# cat /proc/stat | grep ^cpu
cpu  344328477 204196 441284856 6991127129 23228567 0 1901439 0 0 0
cpu0 172236235 102245 220655561 3495037978 11581866 0 960380 0 0 0
cpu1 172092241 101951 220629295 3496089151 11646701 0 941058 0 0 0
user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。
nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。这里注意,nice 可取值范围是 -20 到 19,数值越大,优先级反而越低。
system(通常缩写为 sys),代表内核态 CPU 时间。
idle(通常缩写为 id),代表空闲时间。注意,它不包括等待 I/O 的时间(iowait)。
iowait(通常缩写为 wa),代表等待 I/O 的 CPU 时间。
irq(通常缩写为 hi),代表处理硬中断的 CPU 时间。
softirq(通常缩写为 si),代表处理软中断的 CPU 时间。
steal(通常缩写为 st),代表当系统运行在虚拟机中的时候,被其他虚拟机占用的 CPU 时间。
guest(通常缩写为 guest),代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的 CPU 时间。
guest_nice(通常缩写为 gnice),代表以低优先级运行虚拟机的时间。

6、perf

     perf top  :查看系统CPU的使用情况
     perf top -f  2233 :查看2233进程CPU的使用情况
image.png

二、平均负载

1、top/uptime: 查看平均负载

[root@k8s-master ~]# uptime
 14:54:05 up 480 days,  6:07,  1 user,  load average: 0.02, 0.08, 0.07

2、grep 'model name' /proc/cpuinfo | wc -l :查看cpu个数

[root@k8s-master ~]# grep 'model name' /proc/cpuinfo | wc -l 
2

3、一般情况下,平均负载超出CPU数量70%的时候,就需要排查负载过高的原因了。具体是根据监控结果进行判断。

三、cpu上下文切换

1、vmstat:查看上下文切换

[root@k8s-master ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 171128 276528 2976316    0    0   482    46    0    0  4  6 90  0  0
 2  0      0 168804 276528 2976316    0    0     0     4 1658 3125  5  8 88  0  0
 0  0      0 169760 276528 2976348    0    0     0  2940 3950 7260 12 14 74  0  0
 1  0      0 164632 276528 2976920    0    0     0   132 1409 2495  9  2 89  0  0
 0  0      0 171024 276528 2976324    0    0     0     0  870 1683  0  1 99  0  0


cs(context switch)是每秒上下文切换的次数。
in(interrupt)则是每秒中断的次数。
r(Running or Runnable)是就绪队列的长度,也就是正在运行和等待 CPU 的进程数。
b(Blocked)则是处于不可中断睡眠状态的进程数。

2、pidstat :查看上下文切换

[root@k8s-master ~]# pidstat -w 5  1
Linux 3.10.0-1062.12.1.el7.x86_64 (k8s-master)  05/11/2022  _x86_64_    (2 CPU)

02:57:30 PM   UID       PID   cswch/s nvcswch/s  Command
02:57:35 PM     0         1      1.60      0.00  systemd
02:57:35 PM     0         7      0.40      0.00  migration/0
02:57:35 PM     0         9     23.80      0.00  rcu_sched
02:57:35 PM     0        11      0.40      0.00  watchdog/0
02:57:35 PM     0        12      0.40      0.00  watchdog/1
02:57:35 PM     0        13      0.60      0.00  migration/1
02:57:35 PM     0        37      0.20      0.00  khugepaged
02:57:35 PM     0       330      0.20      0.00  kworker/0:1H
02:57:35 PM     0       353      0.80      0.00  kworker/1:1H
02:57:35 PM     0       357      0.60      0.00  jbd2/vda1-8
02:57:35 PM   993      1331     19.20      0.00  etcd


Average:      UID       PID   cswch/s nvcswch/s  Command
Average:        0         1      1.60      0.00  systemd
Average:        0         7      0.40      0.00  migration/0
Average:        0         9     23.80      0.00  rcu_sched
Average:        0        11      0.40      0.00  watchdog/0
Average:        0        12      0.40      0.00  watchdog/1
Average:        0        13      0.60      0.00  migration/1
Average:        0        37      0.20      0.00  khugepaged
Average:        0       330      0.20      0.00  kworker/0:1H
Average:        0       353      0.80      0.00  kworker/1:1H
Average:        0       357      0.60      0.00  jbd2/vda1-8
Average:      993      1331     19.20      0.00  etcd


一个是  cswch  ,表示每秒自愿上下文切换(voluntary context switches)的次数,另一个则是  nvcswch  ,表示每秒非自愿上下文切换(non voluntary context switches)的次数。
所谓自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换。
而非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。比如,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换。

四、内存

1、free:不加参数

[root@k8s-master ~]# free  
              total        used        free      shared  buff/cache   available
Mem:        3880360      458048      194128        1764     3228184     3133360
Swap:             0           0           0

free -h:以合适的单位显示

free -m:以单位MB显示

free -k:以单位KB显示

total是总内存的大小。
used是已使用内存的大小,包含了共享内存。
free是未使用内存的大小。
shared是共享内存的大小。
buff/cache是缓存和缓存区的大小。
available是新进程可用内存的大小。available不仅包含未使用内存,还包含了可回收的缓存,所以一般会比使用内存更大。不过,并不是所有缓存都可以回收,因为有些缓存可能正在使用中。

2、top

 [root@k8s-master ~]# top 
top - 15:13:14 up 480 days,  6:26,  1 user,  load average: 0.00, 0.02, 0.05
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu0  :  1.0 us,  1.0 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3880360 total,   169700 free,   456684 used,  3253976 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3134732 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND               
 8360 root      20   0  680204  14540   2292 S   1.3  0.4 137:03.43 barad_agent           
21376 root      20   0 1120540 157040  13860 S   0.7  4.0   1337:56 YDService             
 1331 etcd      20   0   11.0g  60244    844 S   0.3  1.6   2857:12 etcd                  
23539 root      20   0  161892   2192   1552 R   0.3  0.1   0:00.07 top                   
26386 root      20   0 1126056  35352   9664 S   0.3  0.9 136:22.46 dockerd-current       
    1 root      20   0   48288   7840   1720 S   0.0  0.2 274:28.36 systemd               
    2 root      20   0       0      0      0 S   0.0  0.0   0:17.87 kthreadd              
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H          
    6 root      20   0       0      0      0 S   0.0  0.0  97:12.17 ksoftirqd/0           
    7 root      rt   0       0      0      0 S   0.0  0.0  99:28.49 migration/0           
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                
    9 root      20   0       0      0      0 S   0.0  0.0 338:40.14 rcu_sched             
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain
VIRT 是进程虚拟内存的大小,只要是进程申请过的内存,即便还没有真正分配物理内存,也会计算在内。
RES 是常驻内存的大小,也就是进程实际使用的物理内存大小,但不包括 Swap 和共享内存。
SHR 是共享内存的大小,比如与其他进程共同使用的共享内存、加载的动态链接库以及程序的代码段等。
%MEM 是进程使用物理内存占系统总内存的百分比。

3、vmstat

[root@k8s-master ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 171128 276528 2976316    0    0   482    46    0    0  4  6 90  0  0
 2  0      0 168804 276528 2976316    0    0     0     4 1658 3125  5  8 88  0  0
 0  0      0 169760 276528 2976348    0    0     0  2940 3950 7260 12 14 74  0  0
 1  0      0 164632 276528 2976920    0    0     0   132 1409 2495  9  2 89  0  0
 0  0      0 171024 276528 2976324    0    0     0     0  870 1683  0  1 99  0  0
free是未使用内存的大小。
buff是对磁盘数据缓存的大小。
cache是对文件数据缓存的大小。

4、htop

image.png

5、总结

首先使用free,查看系统整体的内存使用情况。
其次使用top,查看使用最高内存的进程。
再次使用vmstat 或者pidstat,查看一段时间的内存使用趋势,从而判断出内存问题的类型。
最后进行详细分析,比如内存分配分析、缓存 / 缓冲区分析、具体进程的内存使用分析等。

五、磁盘

1、iostat:查看磁盘io

[root@k8s-master ~]# iostat -d -x 1
Linux 3.10.0-1062.12.1.el7.x86_64 (k8s-master)  2022年04月17日     _x86_64_    (2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.05     6.82    8.56    8.09  1006.02    87.39   131.35     0.10    0.95   10.34    4.49   0.50   0.83
scd0              0.00     0.00    0.00    0.00     0.00     0.00     7.14     0.00    0.48    0.48    0.00   0.48   0.00


%util  ,就是我们前面提到的磁盘 I/O 使用率;
r/s+  w/s  ,就是 IOPS;
rkB/s+wkB/s ,就是吞吐量;
r_await+w_await ,就是响应时间。在观测指标时,需要结合请求的大小( rareq-sz 和 wareq-sz)一起分析。

2、pidstat :查看进程io

[root@k8s-master ~]# pidstat -d 1
Linux 3.10.0-1062.12.1.el7.x86_64 (k8s-master)  2022年04月17日     _x86_64_    (2 CPU)

13时02分18秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
13时02分19秒     0      8360      0.00      3.96      0.00  barad_agent



用户 ID(UID)和进程 ID(PID)  。
每秒读取的数据大小(kB_rd/s) ,单位是 KB。
每秒发出的写请求数据大小(kB_wr/s) ,单位是 KB。
每秒取消的写请求数据大小(kB_ccwr/s) ,单位是 KB。

3、iotop:查看进程io

[root@k8s-master ~]# iotop
Total DISK READ :   0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:   0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND          
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd -~rialize 22
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
 9643 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % docker-co~group=true
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
前两行分别表示,进程的磁盘读写大小总数和磁盘真实的读写大小总数。因为缓存、缓冲区、I/O 合并等因素的影响,它们可能并不相等。
剩下的部分,则是从各个角度来分别表示进程的 I/O 情况,包括线程 ID、I/O 优先级、每秒读磁盘的大小、每秒写磁盘的大小、换入和等待 I/O 的时钟百分比等。

六、网络

1、netstat 查看网络情况

[root@k8s-master ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      9346/sshd: root@pts 
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      1331/etcd           
tcp        0      0 127.0.0.1:2380          0.0.0.0:*               LISTEN      1331/etcd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1544/sshd 


-l表示只显示监听套接字。
-t表示只显示TCP套接字。
-n表示显示数字地址和端口(而不是名字)。
-p表示显示进程信息。

2、ss -s 查看网络情况

[root@k8s-master ~]# ss -s
Total: 161 (kernel 214)
TCP:   8 (estab 4, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*     214       -         -        
RAW   1         1         0        
UDP   7         5         2        
TCP   8         8         0        
INET      16        14        2        
FRAG      0         0         0     

七、三剑客

1、grep

[root@k8s-master ~]# tail -f test.txt | grep '192.168.1.1'
test1:test2 test3 test4 192.168.1.1  establish
test1:test2 test3 test4 192.168.1.1  establish

2、awk

[root@k8s-master ~]# tail -f test.txt | awk '{print $4}'
192.168.1.1
192.168.1.2
192.168.1.1

[root@k8s-master ~]# tail -f test.txt | cut -d ' '  -f 4
192.168.1.1
192.168.1.2
192.168.1.1

八、杀掉进程

1、kill + 进程id

2、for i in ps -aux|grep '进程id'|awk '{print $2}';do kill $i;done

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345