日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全

發布時間:2023/12/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:有哪些常見的線上故障?如何快速定位問題?本文詳細總結工作中的經驗,從服務器、Java應用、數據庫、Redis、網絡和業務六個層面分享線上故障排查的思路和技巧。較長,同學們可收藏后再看。

前言

線上定位問題時,主要靠監控和日志。一旦超出監控的范圍,則排查思路很重要,按照流程化的思路來定位問題,能夠讓我們在定位問題時從容、淡定,快速的定位到線上的問題。

線上問題定位思維導圖

一 服務器層面

1.1 磁盤

1.1.1 問題現象

當磁盤容量不足的時候,應用時常會拋出如下的異常信息:

java.io.IOException: 磁盤空間不足

或是類似如下告警信息:

1.1.2 排查思路1.1.2.1 利用 df 查詢磁盤狀態

利用以下指令獲取磁盤狀態:

df -h

結果是:

可知 / 路徑下占用量最大。

1.1.2.2 利用 du 查看文件夾大小

利用以下指令獲取目錄下文件夾大小:

du -sh *

結果是:

可知root文件夾占用空間最大,然后層層遞推找到對應的最大的一個或數個文件夾。

1.1.2.3 利用 ls 查看文件大小

利用以下指令獲取目錄下文件夾大小:

ls -lh

結果是:

可以找到最大的文件是日志文件,然后使用rm指令進行移除以釋放磁盤。

1.1.3 相關命令1.1.3.1 df

主要是用于顯示目前在 Linux 系統上的文件系統磁盤使用情況統計。

(1)常用參數

啟動參數:


(2)結果參數
1.1.3.2 du

主要是為了顯示目錄或文件的大小。

(1)常用參數

啟動參數:


(2)結果參數

1.1.3.3 ls

主要是用于顯示指定工作目錄下的內容的信息。

(1)常用參數

啟動參數:


(2)結果參數

1.2 CPU過高

1.2.1 問題現象

當CPU過高的時候,接口性能會快速下降,同時監控也會開始報警。

1.2.2 排查思路1.2.2.1 利用 top 查詢CPU使用率最高的進程

利用以下指令獲取系統CPU使用率信息:

top

結果是:


從而可以得知pid為14201的進程使用CPU最高。1.2.3 相關命令1.2.3.1 top

(1)常用參數

啟動參數:


top進程內指令參數:
(2)結果參數

二 應用層面

2.1 Tomcat假死案例分析

2.1.1 發現問題

監控平臺發現某個Tomcat節點已經無法采集到數據,連上服務器查看服務器進程還在,netstat -anop|grep 8001端口也有監聽,查看日志打印時斷時續。

2.2.2 查詢日志

查看NG日志,發現有數據進入到當前服務器(有8001和8002兩個Tomcat),NG顯示8002節點訪問正常,8001節點有404錯誤打印,說明Tomcat已經處于假死狀態,這個Tomcat已經不能正常工作了。

過濾Tomcat節點的日志,發現有OOM的異常,但是重啟后,有時候Tomcat掛掉后,又不會打印如下OOM的異常:

TopicNewController.getTopicSoftList() error="Java heap space From class java.lang.OutOfMemoryError"appstore_apitomcat2.2.3 獲取內存快照

在一次OOM發生后立刻抓取內存快照,需要執行命令的用戶與JAVA進程啟動用戶是同一個,否則會有異常:

/data/program/jdk/bin/jmap -dump:live,format=b,file=/home/www/jmaplogs/jmap-8001-2.bin 18760ps -ef|grep store.cn.xml|grep -v grep|awk '{print $2}'|xargs /data/program/jdk-1.8.0_11/bin/jmap -dump:live,format=b,file=api.bin

內存dump文件比較大,有1.4G,先壓縮,然后拉取到本地用7ZIP解壓。

linux壓縮dump為.tgz。

在windows下用7zip需要經過2步解壓:

.bin.tgz---.bin.tar--.bin2.2.4 分析內存快照文件

使用Memory Analyzer解析dump文件,發現有很明顯的內存泄漏提示。


點擊查看詳情,發現定位到了代碼的具體某行,一目了然:
查看shallow heap與retained heap能發現生成了大量的Object(810325個對象),后面分析代碼發現是上報softItem對象超過300多萬個對象,在循環的時候,所有的數據全部保存在某個方法中無法釋放,導致內存堆積到1.5G,從而超過了JVM分配的最大數,從而出現OOM。java.lang.Object[810325] @ 0xb0e971e0

2.2.5 相關知識2.2.5.1 JVM內存


2.2.5.2 內存分配的流程
如果通過逃逸分析,則會先在TLAB分配,如果不滿足條件才在Eden上分配。2.2.4.3 GC


(1)GC觸發的場景
2)GC Roots

GC Roots有4種對象:

  • 虛擬機棧(棧楨中的本地變量表)中的引用的對象,就是平時所指的java對象,存放在堆中。
  • 方法區中的類靜態屬性引用的對象,一般指被static修飾引用的對象,加載類的時候就加載到內存中。
  • 方法區中的常量引用的對象。
  • 本地方法棧中JNI(native方法)引用的對象。

(3)GC算法

  • 串行只使用單條GC線程進行處理,而并行則使用多條。
  • 多核情況下,并行一般更有執行效率,但是單核情況下,并行未必比串行更有效率。

  • STW會暫停所有應用線程的執行,等待GC線程完成后再繼續執行應用線程,從而會導致短時間內應用無響應。
  • Concurrent會導致GC線程和應用線程并發執行,因此應用線程和GC線程互相搶用CPU,從而會導致出現浮動垃圾,同時GC時間不可控。

(4)新生代使用的GC算法

  • 新生代算法都是基于Coping的,速度快。
  • Parallel Scavenge:吞吐量優先。
    • 吞吐量=運行用戶代碼時間 /(運行用戶代碼時間 + 垃圾收集時間)

(5)老年代使用的GC算法

Parallel Compacting

Concurrent Mark-Sweep(CMS)

(6)垃圾收集器總結


(7)實際場景中算法使用的組合
(8)GC日志格式

(a)監控內存的OOM場景

不要在線上使用jmap手動抓取內存快照,其一系統OOM時手工觸發已經來不及,另外在生成dump文件時會占用系統內存資源,導致系統崩潰。只需要在JVM啟動參數中提取設置如下參數,一旦OOM觸發會自動生成對應的文件,用MAT分析即可。

# 內存OOM時,自動生成dump文件 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/logs/

如果Young GC比較頻繁,5S內有打印一條,或者有Old GC的打印,代表內存設置過小或者有內存泄漏,此時需要抓取內存快照進行分享。

(b)Young Gc日志

2020-09-23T01:45:05.487+0800: 126221.918: [GC (Allocation Failure) 2020-09-23T01:45:05.487+0800: 126221.918: [ParNew: 1750755K->2896K(1922432K), 0.0409026 secs] 1867906K->120367K(4019584K), 0.0412358 secs] [Times: user=0.13 sys=0.01, real=0.04 secs]


(c)Old GC日志2020-10-27T20:27:57.733+0800: 639877.297: [Full GC (Heap Inspection Initiated GC) 2020-10-27T20:27:57.733+0800: 639877.297: [CMS: 165992K->120406K(524288K), 0.7776748 secs] 329034K->120406K(1004928K), [Metaspace: 178787K->178787K(1216512K)], 0.7787158 secs] [Times: user=0.71 sys=0.00, real=0.78 secs]

2.2 應用CPU過高

2.2.1 發現問題

一般情況下會有監控告警進行提示:

2.2.2 查找問題進程

利用top查到占用cpu最高的進程pid為14,結果圖如下:

2.2.3 查找問題線程

利用 top -H -p 查看進程內占用cpu最高線程,從下圖可知,問題線程主要是activeCpu Thread,其pid為417。

2.2.4 查詢線程詳細信息
  • 首先利用 printf "%x n" 將tid換為十六進制:xid。
  • 再利用 jstack | grep nid=0x -A 10 查詢線程信息(若進程無響應,則使用 jstack -f ),信息如下:

2.2.5 分析代碼

由上一步可知該問題是由 CpuThread.java 類引發的,故查詢項目代碼,獲得如下信息:

2.2.6 獲得結論

根據代碼和日志分析,可知是由于限制值max太大,致使線程長時間循環執行,從而導致問題出現。

三 Mysql

3.1 死鎖

3.1.1 問題出現

最近線上隨著流量變大,突然開始報如下異常,即發生了死鎖問題:

Deadlock found when trying to get lock; try restarting transaction ;3.1.2 問題分析3.1.2.1 查詢事務隔離級別

利用 select @@tx_isolation 命令獲取到數據庫隔離級別信息:

3.1.2.2 查詢數據庫死鎖日志

利用 show engine innodb status 命令獲取到如下死鎖信息:


由上可知,是由于兩個事物對這條記錄同時持有S鎖(共享鎖)的情況下,再次嘗試獲取該條記錄的X鎖(排它鎖),從而導致互相等待引發死鎖。3.1.2.3 分析代碼

根據死鎖日志的SQL語句,定位獲取到如下偽代碼邏輯:

@Transactional(rollbackFor = Exception.class) void saveOrUpdate(MeetingInfo info) {// insert ignore into table values (...)int result = mapper.insertIgnore(info);if (result>0) {return;}// update table set xx=xx where id = xxmapper.update(info); }3.1.2.4 獲得結論

分析獲得產生問題的加鎖時序如下,然后修改代碼實現以解決該問題。

3.2 慢SQL

3.2.1 問題出現

應用TPS下降,并出現SQL執行超時異常或者出現了類似如下的告警信息,則常常意味著出現了慢SQL。

3.2.2 問題分析

分析執行計劃:利用explain指令獲得該SQL語句的執行計劃,根據該執行計劃,可能有兩種場景。

SQL不走索引或掃描行數過多等致使執行時長過長。

SQL沒問題,只是因為事務并發導致等待鎖,致使執行時長過長。

3.2.3 場景一3.2.3.1 優化SQL

通過增加索引,調整SQL語句的方式優化執行時長, 例如下的執行計劃:

該SQL的執行計劃的type為ALL,同時根據以下type語義,可知無索引的全表查詢,故可為其檢索列增加索引進而解決。

3.2.4 場景二3.2.4.1 查詢當前事務情況

可以通過查看如下3張表做相應的處理:

-- 當前運行的所有事務 select * from information_schema.innodb_trx; -- 當前出現的鎖 SELECT * FROM information_schema.INNODB_LOCKS; -- 鎖等待的對應關系 select * from information_schema.INNODB_LOCK_WAITS;

(1)查看當前的事務有哪些:


(2)查看事務鎖類型索引的詳細信息:
lock_table字段能看到被鎖的索引的表名,lock_mode可以看到鎖類型是X鎖,lock_type可以看到是行鎖record。3.2.4.2 分析

根據事務情況,得到表信息,和相關的事務時序信息:

DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `salary` int(10) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_name` (`name`(191)) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;

A事物鎖住一條記錄,不提交,B事物需要更新此條記錄,此時會阻塞,如下圖是執行順序:

3.2.4.3 解決方案

(1)修改方案

由前一步的結果,分析事務間加鎖時序,例如可以通過tx_query字段得知被阻塞的事務SQL,trx_state得知事務狀態等,找到對應代碼邏輯,進行優化修改。

(2)臨時修改方案

trx_mysql_thread_id是對應的事務sessionId,可以通過以下命令殺死長時間執行的事務,從而避免阻塞其他事務執行。

kill 105853

3.3 連接數過多

3.3.1 問題出現

常出現too many connections異常,數據庫連接到達最大連接數。

3.3.2 解決方案

解決方案:

通過set global max_connections=XXX增大最大連接數。

先利用show processlist獲取連接信息,然后利用kill殺死過多的連。

常用腳本如下:

排序數據庫連接的數目 mysql -h127.0.0.0.1 -uabc_test -pXXXXX -P3306 -A -e 'show processlist'| awk '{print $4}'|sort|uniq -c|sort -rn|head -10

3.4 相關知識

3.4.1 索引

3.4.1.1 MySql不同的存儲引擎

3.4.1.2 InnoDB B+Tree索引實現

主鍵索引(聚集索引):

  • 葉子節點data域保存了完整的數據的地址。
  • 主鍵與數據全部存儲在一顆樹上。
  • Root節點常駐內存。
  • 每個非葉子節點一個innodb_page_size大小,加速磁盤IO。
  • 磁盤的I/O要比內存慢幾百倍,而磁盤慢的原因在于機械設備尋找磁道慢,因此采用磁盤預讀,每次讀取一個磁盤頁(page:計算機管理存儲器的邏輯塊-通常為4k)的整倍數。
  • 如果沒有主鍵,MySQL默認生成隱含字段作為主鍵,這個字段長度為6個字節,類型為長整形。
  • 輔助索引結構與主索引相同,但葉子節點data域保存的是主鍵指針。
  • InnoDB以表空間Tablespace(idb文件)結構進行組織,每個Tablespace 包含多個Segment段。
  • 每個段(分為2種段:葉子節點Segment&非葉子節點Segment),一個Segment段包含多個Extent。
  • 一個Extent占用1M空間包含64個Page(每個Page 16k),InnoDB B-Tree 一個邏輯節點就分配一個物理Page,一個節點一次IO操作。
  • 一個Page里包含很多有序數據Row行數據,Row行數據中包含Filed屬性數據等信息。

InnoDB存儲引擎中頁的大小為16KB,一般表的主鍵類型為INT(占用4個字節)或BIGINT(占用8個字節),指針類型也一般為4或8個字節,也就是說一個頁(B+Tree中的一個節點)中大概存儲16KB/(8B+8B)=1K個鍵值(因為是估值,為方便計算,這里的K取值為[10]^3)。

也就是說一個深度為3的B+Tree索引可以維護 10^3 10^3 10^3 = 10億 條記錄。


每個索引的左指針都是比自己小的索引/節點,右指針是大于等于自己的索引/節點。3.4.2 B+ Tree索引檢索3.4.2.1 主鍵索引檢索select * from table where id = 1

3.4.2.2 輔助索引檢索select * from table where name = 'a'

3.4.3 事物的隔離級別3.4.3.1 如何查看數據庫的事務隔離級別

使用如下命令可以查看事務的隔離級別:

show variables like 'tx_isolation';

阿里云上的rds的隔離級別是read committed ,而不是原生mysql的“可重復讀(repeatable-read)。

  • Repeatable read不存在幻讀的問題,RR隔離級別保證對讀取到的記錄加鎖 (記錄鎖),同時保證對讀取的范圍加鎖,新的滿足查詢條件的記錄不能夠插入 (間隙鎖),不存在幻讀現象。
  • 在MYSQL的事務引擎中,INNODB是使用范圍最廣的。它默認的事務隔離級別是REPEATABLE READ(可重復讀),在標準的事務隔離級別定義下,REPEATABLE READ是不能防止幻讀產生的。INNODB使用了next-key locks實現了防止幻讀的發生。
  • 在默認情況下,mysql的事務隔離級別是可重復讀,并且innodb_locks_unsafe_for_binlog參數為OFF,這時默認采用next-key locks。所謂Next-Key Locks,就是Record lock和gap lock的結合,即除了鎖住記錄本身,還要再鎖住索引之間的間隙。可以設置為ON,則RR隔離級別時會出現幻讀。
3.4.3.2 多版本并發控制MVCC

MySQL InnoDB存儲引擎,實現的是基于多版本的并發控制協議——MVCC (Multi-Version Concurrency Control) (注:與MVCC相對的,是基于鎖的并發控制,Lock-Based Concurrency Control)。

MVCC最大的好處,相信也是耳熟能詳:讀不加鎖,讀寫不沖突。在讀多寫少的OLTP應用中,讀寫不沖突是非常重要的,極大的增加了系統的并發性能。

在MVCC并發控制中,讀操作可以分成兩類:快照讀 (snapshot read)與當前讀 (current read)。

快照讀:簡單的select操作,屬于快照讀,不加鎖。(當然,也有例外,下面會分析)。

select * from table where ?;

當前讀:特殊的讀操作,插入/更新/刪除操作,屬于當前讀,需要加鎖。

select * from table where ? lock in share mode;  加S鎖 (共享鎖) -- 下面的都是X鎖 (排它鎖) select * from table where ? for update;insert into table values (…);update table set ? where ?;delete from table where ?;3.4.4.3 場景模擬

修改事務隔離級別的語句:

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- READ UNCOMMITTED/READ COMMITTED/REPEATABLE READ/SERIALIZABLE

(1)臟讀場景模擬

DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` (`id` int(11) NOT NULL,`name` varchar(50) NOT NULL,`salary` int(11) DEFAULT NULL,KEY `IDX_ID` (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of employee -- ---------------------------- INSERT INTO `employee` VALUES ('10', '1s', '10'); INSERT INTO `employee` VALUES ('20', '2s', '20'); INSERT INTO `employee` VALUES ('30', '3s', '30');

臟讀場景模擬

(2)不可重復讀模擬

DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` (`id` int(11) NOT NULL,`name` varchar(50) NOT NULL,`salary` int(11) DEFAULT NULL,KEY `IDX_ID` (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of employee -- ---------------------------- INSERT INTO `employee` VALUES ('10', '1s', '10'); INSERT INTO `employee` VALUES ('20', '2s', '20'); INSERT INTO `employee` VALUES ('30', '3s', '30');

不可重復讀的重點是修改: 同樣的條件, 你讀取過的數據, 再次讀取出來發現值不一樣了。


(3)幻讀場景模擬

表結構與數據如下:id不是主鍵,也不是唯一索引,只是一個普通索引,事務隔離級別設置的是RR,可以模擬到GAP鎖產生的場景。

DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` (`id` int(11) NOT NULL,`salary` int(11) DEFAULT NULL,KEY `IDX_ID` (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of emp -- ---------------------------- INSERT INTO `emp` VALUES ('10', '10'); INSERT INTO `emp` VALUES ('20', '20'); INSERT INTO `emp` VALUES ('30', '30');

修改id=20的數據后,會在加多個鎖:20會被加X鎖,[10-20],[20-30]之間會被加GAP鎖。


幻讀的重點在于新增或者刪除 (數據條數變化)。同樣的條件, 第1次和第2次讀出來的記錄數不一樣。

在標準的事務隔離級別定義下,REPEATABLE READ是不能防止幻讀產生的。INNODB使用了2種技術手段(MVCC AND GAP LOCK)實現了防止幻讀的發生。

3.4.4 Innodb的多種鎖3.4.4.1 鎖類型

  • 表鎖的優勢:開銷小;加鎖快;無死鎖。
  • 表鎖的劣勢:鎖粒度大,發生鎖沖突的概率高,并發處理能力低。
  • 加鎖的方式:自動加鎖。查詢操作(SELECT),會自動給涉及的所有表加讀鎖,更新操作(UPDATE、DELETE、INSERT),會自動給涉及的表加寫鎖。也可以顯示加鎖。
  • 共享讀鎖:lock table tableName read
  • 獨占寫鎖:lock table tableName write
  • 批量解鎖:unlock tables
3.4.4.2 行鎖


只在Repeatable read和Serializable兩種事務隔離級別下才會取得上面的鎖。3.4.4.3 意向鎖

(1)場景

在mysql中有表鎖,LOCK TABLE my_tabl_name READ; 用讀鎖鎖表,會阻塞其他事務修改表數據。LOCK TABLE my_table_name WRITe; 用寫鎖鎖表,會阻塞其他事務讀和寫。

Innodb引擎又支持行鎖,行鎖分為共享鎖,一個事務對一行的共享只讀鎖。排它鎖,一個事務對一行的排他讀寫鎖。

這兩中類型的鎖共存的問題考慮這個例子:

事務A鎖住了表中的一行,讓這一行只能讀,不能寫。之后,事務B申請整個表的寫鎖。如果事務B申請成功,那么理論上它就能修改表中的任意一行,這與A持有的行鎖是沖突的。

數據庫需要避免這種沖突,就是說要讓B的申請被阻塞,直到A釋放了行鎖。

(2)問題

數據庫要怎么判斷這個沖突呢?

(3)答案

無意向鎖的情況下:

step1:判斷表是否已被其他事務用表鎖鎖表

step2:判斷表中的每一行是否已被行鎖鎖住。

有意向鎖的情況下:

  • step1:不變
  • step2:發現表上有意向共享鎖,說明表中有些行被共享行鎖鎖住了,因此,事務B申請表的寫鎖會被阻塞。

(4)總結

在無意向鎖的情況下,step2需要遍歷整個表,才能確認是否能拿到表鎖。而在意向鎖存在的情況下,事務A必須先申請表的意向共享鎖,成功后再申請一行的行鎖,不需要再遍歷整個表,提升了效率。因此意向鎖主要是為了實現多粒度鎖機制(白話:為了表鎖和行鎖都能用)。

3.4.4.4 X/S鎖

3.4.4.5 一條SQL的加鎖分析-- select操作均不加鎖,采用的是快照讀,因此在下面的討論中就忽略了 SQL1:select * from t1 where id = 10; SQL2:delete from t1 where id = 10;

組合分為如下幾種場景:


(1)組合7的GAP鎖詳解讀

Insert操作,如insert [10,aa],首先會定位到[6,c]與[10,b]間,然后在插入前,會檢查這個GAP是否已經被鎖上,如果被鎖上,則Insert不能插入記錄。因此,通過第一遍的當前讀,不僅將滿足條件的記錄鎖上 (X鎖),與組合三類似。同時還是增加3把GAP鎖,將可能插入滿足條件記錄的3個GAP給鎖上,保證后續的Insert不能插入新的id=10的記錄,也就杜絕了同一事務的第二次當前讀,出現幻象的情況。

既然防止幻讀,需要靠GAP鎖的保護,為什么組合五、組合六,也是RR隔離級別,卻不需要加GAP鎖呢?

GAP鎖的目的,是為了防止同一事務的兩次當前讀,出現幻讀的情況。而組合五,id是主鍵;組合六,id是unique鍵,都能夠保證唯一性。

一個等值查詢,最多只能返回一條記錄,而且新的相同取值的記錄,一定不會在新插入進來,因此也就避免了GAP鎖的使用。

(2)結論

  • Repeatable Read隔離級別下,id列上有一個非唯一索引,對應SQL:delete from t1 where id = 10; 首先,通過id索引定位到第一條滿足查詢條件的記錄,加記錄上的X鎖,加GAP上的GAP鎖,然后加主鍵聚簇索引上的記錄X鎖,然后返回;然后讀取下一條,重復進行。直至進行到第一條不滿足條件的記錄[11,f],此時,不需要加記錄X鎖,但是仍舊需要加GAP鎖,最后返回結束。
  • 什么時候會取得gap lock或nextkey lock 這和隔離級別有關,只在REPEATABLE READ或以上的隔離級別下的特定操作才會取得gap lock或nextkey lock。
3.4.5 線上問題處理3.4.5.1 觀察問題的幾個常見庫表

首先可以通過下屬兩個命令來查看mysql的相應的系統變量和狀態變量。

# status代表當前系統的運行狀態,只能查看,不能修改 show status like '%abc%'; show variables like '%abc%';

MySQL 5.7.6開始后改成了從如下表獲取:

performance_schema.global_variables performance_schema.session_variables performance_schema.variables_by_thread performance_schema.global_status performance_schema.session_status performance_schema.status_by_thread performance_schema.status_by_account performance_schema.status_by_host performance_schema.status_by_user

之前是從如下表獲取:

INFORMATION_SCHEMA.GLOBAL_VARIABLES INFORMATION_SCHEMA.SESSION_VARIABLES INFORMATION_SCHEMA.GLOBAL_STATUS INFORMATION_SCHEMA.SESSION_STATUS

比較常用的系統變量和狀態變量有:

# 查詢慢SQL查詢是否開啟 show variables like 'slow_query_log'; # 查詢慢SQL的時間 show variables like 'long_query_time'; # 查看慢SQL存放路徑,一般:/home/mysql/data3016/mysql/slow_query.log show variables like 'slow_query_log_file';# 查看數據庫的事務隔離級別,RDS:READ-COMMITTED Mysql:Repeatable read show variables like 'tx_isolation'; # innodb數據頁大小 16384 show variables like 'innodb_page_size'; show status like 'innodb_row_%';# 查看慢SQL SHOW SLOW limit 10; show full slow limit 10;# 查看autocommit配置 select @@autocommit; # 同上 show variables like 'autocommit'; #設置SQL自動提交模式 1:默認,自動提交 0:需要手動觸發commit,否則不會生效 set autocommit=1;   # 查看默認的搜索引擎 show variables like '%storage_engine%'; # 設置事務隔離級別 SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;

3.5 一些建議

3.5.1 小表驅動大表
  • nb_soft_nature:小表
  • nb_soft:大表
  • package_name:都是索引

MySQL 表關聯的算法是Nest Loop Join(嵌套循環連接),是通過驅動表的結果集作為循環基礎數據,然后一條一條地通過該結果集中的數據作為過濾條件到下一個表中查詢數據,然后合并結果。

(1)小表驅動大表


nb_soft_nature 中只有24條數據,每條數據的package_name連接到nb_soft表中做查詢,由于package_name在nb_soft表中有索引,因此一共只需要24次掃描即可。

(2)大表驅動小表


同上,需要100多萬次掃描才能返回結果3.5.2 使用自增長主鍵

結合B+Tree的特點,自增主鍵是連續的,在插入過程中盡量減少頁分裂,即使要進行頁分裂,也只會分裂很少一部分。并且能減少數據的移動,每次插入都是插入到最后。總之就是減少分裂和移動的頻率。

四 Redis

4.1 問題處理思路

4.2 內存告警

時常會出現下述異常提示信息:

OOM command not allowed when used memory4.2.1 設置合理的內存大小

設置maxmemory和相對應的回收策略算法,設置最好為物理內存的3/4,或者比例更小,因為redis復制數據等其他服務時,也是需要緩存的。以防緩存數據過大致使redis崩潰,造成系統出錯不可用。

(1)通過redis.conf 配置文件指定

maxmemory xxxxxx

(2)通過命令修改

config set maxmemory xxxxx4.2.2 設置合理的內存淘汰策略


(1)通過redis.conf 配置文件指定maxmemory-policy allkeys-lru4.2.3 查看大key

(1)有工具的情況下:

安裝工具dbatools redisTools,列出最大的前N個key

/data/program/dbatools-master/redisTools/redis-cli-new -h <ip> -p <port> --bigkeys --bigkey-numb 3

得到如下結果:

Sampled 122114 keys in the keyspace! Total key length in bytes is 3923725 (avg len 32.13)Biggest string Key Top 1 found 'xx1' has 36316 bytes Biggest string Key Top 2 found 'xx2' has 1191 bytes Biggest string Key Top 3 found 'xx3' has 234 bytes Biggest list Key Top 1 found 'x4' has 204480 items Biggest list Key Top 2 found 'x5' has 119999 items Biggest list Key Top 3 found 'x6' has 60000 items Biggest set Key Top 1 found 'x7' has 14205 members Biggest set Key Top 2 found 'x8' has 292 members Biggest set Key Top 3 found 'x,7' has 21 members Biggest hash Key Top 1 found 'x' has 302939 fields Biggest hash Key Top 2 found 'xc' has 92029 fields Biggest hash Key Top 3 found 'xd' has 39634 fields

原生命令為:

/usr/local/redis-3.0.5/src/redis-cli -c -h <ip> -p <port> --bigkeys

分析rdb文件中的全部key/某種類型的占用量:

rdb -c memory dump.rdb -t list -f dump-formal-list.csv

查看某個key的內存占用量:

[root@iZbp16umm14vm5kssepfdpZ redisTools]# redis-memory-for-key -s <ip> -p <port> x Key x Bytes 4274388.0 Type hash Encoding hashtable Number of Elements 39634 Length of Largest Element 29

(2)無工具的情況下可利用以下指令評估key大小:

debug object key

4.3 Redis的慢命令

4.3.1 設置Redis的慢命令的時間閾值(單位:微妙)

(1)通過redis.conf配置文件方式

# 執行時間大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查詢進行記錄。 slowlog-log-lower-than 1000# 最多能保存多少條日志 slowlog-max-len 200

(2)通過命令方式

# 配置查詢時間超過1毫秒的, 第一個參數單位是微秒 config set slowlog-log-lower-than 1000# 保存200條慢查記錄 config set slowlog-max-len 2004.3.2 查看Redis的慢命令slowlog get

4.4 連接過多

(1)通過redis.conf 配置文件指定最大連接數

maxclients 10000

(2)通過命令修改

config set maxclients xxx

4.5 線上Redis節點掛掉一個之后的處理流程

4.5.1 查看節點狀態

執行 cluster nodes 后發現會有一個節點dead:

[rgp@iZ23rjcqbczZ ~]$ /data/program/redis-3.0.3/bin/redis-cli -c -h <ip> -p <port> ip:port> cluster nodes 9f194f671cee4a76ce3b7ff14d3bda190e0695d5 m1 master - 0 1550322872543 65 connected 10923-16383 a38c6f957f2706f269cf5d9b628586a9372265e9 s1 slave 9f194f671cee4a76ce3b7ff14d3bda190e0695d5 0 1550322872943 65 connected 77ce43ec23f25f77ec68fe71ae3cb799e7300c6d s2 slave 03d72a3a5050c85e280e0bbeb687056b84f10077 0 1550322873543 63 connected 03d72a3a5050c85e280e0bbeb687056b84f10077 m2 master - 0 1550322873343 63 connected 5461-10922 5799070c6a63314296f3661b315b95c6328779f7 :0 slave,fail,noaddr 6147bf416ef216b6a1ef2f100d15de4f439b7352 1550320811474 1550320808793 49 disconnected 6147bf416ef216b6a1ef2f100d15de4f439b7352 m3 myself,master - 0 0 49 connected 0-54604.5.2 移除錯誤節點

(1)一開始執行如下的刪除操作失敗,需要針對于每一個節點都執行 cluster forget:

ip:port> cluster forget 61c70a61ad91bbac231e33352f5bdb9eb0be6289 CLUSTER FORGET <node_id> 從集群中移除 node_id 指定的節點

(2)刪除掛掉的節點:

[rgp@iZ23rjcqbczZ ~]$ /data/program/redis-3.0.3/bin/redis-trib.rb del-node m3 b643d7baa69922b3fdbd1e25ccbe6ed73587b948 >>> Removing node b643d7baa69922b3fdbd1e25ccbe6ed73587b948 from cluster m3 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node.

(3)清理掉節點配置目錄下的rdb aof nodes.conf 等文件,否則節點的啟動會有如下異常:

[ERR] Node s3 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.4.5.3 恢復節點

(1)后臺啟動Redis某個節點:

/data/program/redis-3.0.3/bin/redis-server /data/program/redis-3.0.3/etc/7001/redis.conf &

(2)將該節點添加進集群:

[root@iZ23rjcqbczZ rgp]# /data/program/redis-3.0.3/bin/redis-trib.rb add-node --slave --master-id 6147bf416ef216b6a1ef2f100d15de4f439b7352 s3 m3 >>> Adding node s3 to cluster m3 >>> Performing Cluster Check (using node m3) M: 6147bf416ef216b6a1ef2f100d15de4f439b7352 m3slots:0-5460 (5461 slots) master0 additional replica(s) M: 9f194f671cee4a76ce3b7ff14d3bda190e0695d5 m1slots:10923-16383 (5461 slots) master1 additional replica(s) S: a38c6f957f2706f269cf5d9b628586a9372265e9 s1slots: (0 slots) slavereplicates 9f194f671cee4a76ce3b7ff14d3bda190e0695d5 S: 77ce43ec23f25f77ec68fe71ae3cb799e7300c6d s2slots: (0 slots) slavereplicates 03d72a3a5050c85e280e0bbeb687056b84f10077 M: 03d72a3a5050c85e280e0bbeb687056b84f10077 m2slots:5461-10922 (5462 slots) master1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node s3 to make it join the cluster. Waiting for the cluster to join.. >>> Configure node as replica of m3. [OK] New node added correctly.
  • s3:本次待添加的從節點ip:port
  • m3:主節點的ip:port
  • 6147bf416ef216b6a1ef2f100d15de4f439b7352:主節點編號

五 網絡

5.1 排查流程

5.1.1 現象出現

在非壓測或者高峰期的情況下,突然出現大量的503等錯誤碼,頁面無法打開。

5.1.2 查看是否遭受了DOS攻擊

當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現行。

netstat -n|grep SYN_RECV5.1.3 查看TCP連接狀態

首先利用以下查看tcp總連接數,判斷連接數是否正常:

netstat -anoe|grep 8000|wc -l 查看8000

然后利用如下命令判斷各個狀態的連接數是否正常:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

根據上述信息,如果TIME_WAIT 狀態數量過多,可利用如下命令查看連接CLOSE_WAIT最多的IP地址,再結合業務分析問題:

netstat -n|grep TIME_WAIT|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -10

5.2 相關知識

5.2.1 TCP連接

TCP三次握手四次揮手


為什么在第3步中客戶端還要再進行一次確認呢?這主要是為了防止已經失效的連接請求報文段突然又傳回到服務端而產生錯誤的場景:

所謂"已失效的連接請求報文段"是這樣產生的。正常來說,客戶端發出連接請求,但因為連接請求報文丟失而未收到確認。于是客戶端再次發出一次連接請求,后來收到了確認,建立了連接。數據傳輸完畢后,釋放了連接,客戶端一共發送了兩個連接請求報文段,其中第一個丟失,第二個到達了服務端,沒有"已失效的連接請求報文段"。

現在假定一種異常情況,即客戶端發出的第一個連接請求報文段并沒有丟失,只是在某些網絡節點長時間滯留了,以至于延誤到連接釋放以后的某個時間點才到達服務端。本來這個連接請求已經失效了,但是服務端收到此失效的連接請求報文段后,就誤認為這是客戶端又發出了一次新的連接請求。于是服務端又向客戶端發出請求報文段,同意建立連接。假定不采用三次握手,那么只要服務端發出確認,連接就建立了。

由于現在客戶端并沒有發出連接建立的請求,因此不會理會服務端的確認,也不會向服務端發送數據,但是服務端卻以為新的傳輸連接已經建立了,并一直等待客戶端發來數據,這樣服務端的許多資源就這樣白白浪費了。

采用三次握手的辦法可以防止上述現象的發生。比如在上述的場景下,客戶端不向服務端的發出確認請求,服務端由于收不到確認,就知道客戶端并沒有要求建立連接。

SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了,使用如下命令可以讓之現行:

netstat -nap | grep SYN_RECV

5.2.2 一些常見問題

(1)為什么TCP連接的建立只需要三次握手而TCP連接的釋放需要四次握手呢?

因為服務端在LISTEN狀態下,收到建立請求的SYN報文后,把ACK和SYN放在一個報文里發送給客戶端。而連接關閉時,當收到對方的FIN報文時,僅僅表示對方沒有需要發送的數據了,但是還能接收數據,己方未必數據已經全部發送給對方了,所以己方可以立即關閉,也可以將應該發送的數據全部發送完畢后再發送FIN報文給客戶端來表示同意現在關閉連接。

從這個角度而言,服務端的ACK和FIN一般都會分開發送。

(2)如果已經建立了連接,但是客戶端突然出現故障了怎么辦?

TCP還設有一個保活計時器,顯然,客戶端如果出現故障,服務器不能一直等下去,白白浪費資源。服務器每收到一次客戶端的請求后都會重新復位這個計時器,時間通常是設置為2小時,若兩小時還沒有收到客戶端的任何數據,服務器就會發送一個探測報文段,以后每隔75秒鐘發送一次。若一連發送10個探測報文仍然沒反應,服務器就認為客戶端出了故障,接著就關閉連接。

(3)為什么TIME_WAIT狀態需要經過2MSL(最大報文段生存時間)才能返回到CLOSE狀態?

雖然按道理,四個報文都發送完畢,我們可以直接進入CLOSE狀態了,但是我們必須假象網絡是不可靠的,有可以最后一個ACK丟失。所以TIME_WAIT狀態就是用來重發可能丟失的ACK報文。

在Client發送出最后的ACK回復,但該ACK可能丟失。Server如果沒有收到ACK,將不斷重復發送FIN片段。所以Client不能立即關閉,它必須確認Server接收到了該ACK。Client會在發送出ACK之后進入到TIME_WAIT狀態。Client會設置一個計時器,等待2MSL的時間。如果在該時間內再次收到FIN,那么Client會重發ACK并再次等待2MSL。所謂的2MSL是兩倍的MSL(Maximum Segment Lifetime)。

MSL指一個片段在網絡中最大的存活時間,2MSL就是一個發送和一個回復所需的最大時間。如果直到2MSL,Client都沒有再次收到FIN,那么Client推斷ACK已經被成功接收,則結束TCP連接。

六 業務異常日志

6.1 問題出現

主要是通過業務日志監控主動報警或者是查看錯誤日志被動發現:

6.2 日志分析

6.2.1 確認日志格式

日志格式如下:

<property name="METRICS_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS}|${APP_NAME}|%X{className}|%X{methodName}|%X{responseStatus}|%X{timeConsume}|%X{traceId}|%X{errorCode}|%msg%n"/><property name="ERROR_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|${APP_NAME}|%serverIp|%X{tenantId}|%X{accountId}|%thread|%logger{30}|%msg%n"/><!--日志格式 時間|級別|鏈路id|應用名|服務器ip|租戶id|用戶id|線程名稱|logger名稱|業務消息 --> <property name="BIZ_LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|${APP_NAME}|%serverIp|%X{tenantId}|%X{accountId}|%thread|%logger{30}|%msg%n"/>6.2.2 在日志文件中檢索異常

利用如下命令可獲得異常的詳細信息:

cat error.log|grep -n " java.lang.reflect.InvocationTargetException"


根據日志格式和日志信息,可獲得traceId為489d71fe-67db-4f59-a916-33f25d35cab8,然后利用以下指令獲取整個流程的日志信息:cat biz.log |grep -n '489d71fe-67db-4f59-a916-33f25d35cab8'

6.2.3 代碼分析

然后根據上述流程日志找到對應的代碼實現,然后進行具體的業務分析。

版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

黄色在线观看www | 国产一线在线 | 在线观看黄网站 | 久久香蕉电影 | 成人久久18免费网站图片 | 亚洲日本国产精品 | 在线观看黄| aⅴ视频在线 | 韩国精品在线观看 | 狠狠网站 | 国产精品不卡在线 | 久久精品国产精品亚洲精品 | 久久不卡国产精品一区二区 | 日韩亚洲欧美中文字幕 | 国产精品美女久久久久久久 | 免费视频你懂的 | 一级片免费观看 | 很黄很色很污的网站 | 蜜桃av综合网 | 韩国精品一区二区三区六区色诱 | 日韩色高清 | 日韩精品在线免费播放 | 午夜精品av | 欧美日韩三区二区 | 福利视频一区二区 | 91成人网在线 | 欧美成人h版 | 五月激情五月激情 | 青青草国产精品视频 | 久久久精品一区二区 | 成人综合婷婷国产精品久久免费 | 成人午夜电影在线观看 | 免费在线观看中文字幕 | 色欲综合视频天天天 | 国产97色在线 | 久久久精品视频成人 | 国产视频网站在线观看 | 日韩在线短视频 | 午夜日b视频 | 免费视频91| 99视频国产精品免费观看 | 久草视频视频在线播放 | 99久久日韩精品免费热麻豆美女 | 精品国产乱码久久久久久天美 | wwxxx日本| 色综合久久久久综合体桃花网 | av免费看电影 | 极品久久久 | 亚洲一区二区三区四区在线视频 | 激情综合网五月 | 亚洲精品a区 | 日韩在线观看视频免费 | 亚洲一级二级 | 韩国av免费在线观看 | 99热 精品在线 | 亚洲国产精品va在线看黑人 | 成人av片免费看 | 在线观看国产区 | 三级免费黄色 | 国产精品一区二区无线 | 美女网站在线观看 | 在线看国产精品 | 国产色婷婷在线 | av电影在线不卡 | 色姑娘综合天天 | 国产在线观看你懂得 | 久热免费在线观看 | 亚洲精品免费在线观看视频 | 伊人成人激情 | 日韩最新理论电影 | 国产资源在线视频 | 99免费在线播放99久久免费 | 国产福利91精品一区二区三区 | 一区二区三区四区五区在线视频 | 最近能播放的中文字幕 | 免费看黄在线观看 | 久久精美视频 | av天天澡天天爽天天av | 欧美一级日韩三级 | 国产成人免费观看久久久 | 992tv又爽又黄的免费视频 | 国产91影视 | 激情视频综合网 | 欧美 亚洲 另类 激情 另类 | 日韩精品免费在线 | 国产精品久久久久久99 | 国产九色在线播放九色 | 日韩精品中文字幕一区二区 | 亚洲人在线7777777精品 | 麻豆久久久久久久 | 99久久精品久久久久久清纯 | 中文字幕一区二区三区久久蜜桃 | 91精品第一页 | 欧美美女一级片 | 国产成人一区二区三区久久精品 | 91人人澡人人爽人人精品 | 婷婷亚洲五月色综合 | 国产视频在线播放 | 久草在线精品观看 | 麻豆成人在线观看 | 国产丝袜在线 | 狠狠狠色| 国产又粗又猛又黄又爽 | 国产成人三级一区二区在线观看一 | 精品91视频 | 国产精品99久久久精品免费观看 | 91av观看| 成片免费观看视频 | 国产伦理一区 | 久久激情电影 | 亚州av网站 | 欧美在线一二区 | 色吊丝在线永久观看最新版本 | 在线一二区| 欧美综合在线视频 | 成人午夜剧场在线观看 | 久久伊人爱 | 激情xxxx| 99热999| 97视频总站 | 久久免费av电影 | 日韩字幕 | 激情五月激情综合网 | 麻豆综合网| 国产精品入口a级 | 久精品视频 | 亚洲精品美女在线观看 | 天天躁日日躁狠狠躁av中文 | 亚洲精品中文字幕在线观看 | 久久不射电影院 | 国产精品视频最多的网站 | 日韩特黄一级欧美毛片特黄 | 香蕉影视app | 国产粉嫩在线 | 日本黄色大片免费 | 国产一区在线观看视频 | 美女福利视频 | 国产精品久久久久久电影 | 中文字幕av在线不卡 | 国产精品破处视频 | 丁五月婷婷| 99热这里只有精品8 久久综合毛片 | 久草在线综合网 | 欧美日韩国产综合网 | 久久国产亚洲 | 一区二区三区精品久久久 | 韩国三级av在线 | 97**国产露脸精品国产 | 最近中文字幕在线播放 | 国产一区二区在线精品 | 最新真实国产在线视频 | 亚洲精品视频大全 | 五月婷婷综合在线观看 | 成人av免费在线观看 | 99精品欧美一区二区三区 | 亚洲午夜精品福利 | 色综合天天色综合 | 韩国av电影网 | 国产午夜精品免费一区二区三区视频 | 婷婷丁香色综合狠狠色 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产免费又爽又刺激在线观看 | 婷婷色狠狠 | 国产成人在线网站 | 国产中文字幕一区二区 | 精品久久一区二区三区 | 亚洲 欧美 国产 va在线影院 | 国产最顶级的黄色片在线免费观看 | 中文字幕视频一区二区 | 在线观看日韩专区 | 国产大尺度视频 | 97精品国产一二三产区 | 一级片色播影院 | av免费黄色 | www色综合| 天天人人综合 | 免费色视频 | 狠狠干在线 | 久草视频免费 | 成在人线av| 国产一区二区在线免费视频 | 美女网站视频久久 | 99精品欧美一区二区三区黑人哦 | 麻豆91精品91久久久 | 射射射av| 国产精品一区二区av日韩在线 | 国产精品一区二区三区四 | 九九热在线观看视频 | 天堂av在线7 | 国产精品精品久久久久久 | 永久免费观看视频 | 色综合小说 | 在线看免费| 午夜影视一区 | 一区二区三区福利 | 欧美日韩精品在线观看视频 | 色婷五月天 | 久久久久久福利 | 午夜的福利| 手机av看片 | 91九色精品国产 | 日韩 国产| 精品美女久久 | 在线观看日韩中文字幕 | 国产精品成人一区二区三区吃奶 | av三级av| 国产精品久久电影网 | av免费观看在线 | 国产玖玖精品视频 | 久久综合毛片 | 久草亚洲视频 | 99精品视频免费在线观看 | 一区二区三区免费在线观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产成人综合在线观看 | 国产69精品久久久久久 | 97视频网站 | 国产精品中文久久久久久久 | 国产精品第54页 | 久久一区二 | 久久国产精彩视频 | 黄色官网在线观看 | 超碰97在线人人 | 不卡视频一区二区三区 | 国产无套精品久久久久久 | 一区二区三区在线不卡 | 中文字幕在线网 | 日本护士三级少妇三级999 | 久久一区二区三区超碰国产精品 | 狠狠色丁香久久婷婷综合丁香 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 日韩欧美高清视频在线观看 | 国产亚洲欧美在线视频 | 免费国产视频 | 九九热免费观看 | 91日韩精品视频 | 亚洲日本国产精品 | 亚洲精品综合一区二区 | 一区二区三区四区在线 | 中文字幕视频一区 | 免费a网 | 国产精品视频大全 | 亚洲国产日韩欧美 | 日韩在线第一 | 欧美精品第一 | 免费看黄色大全 | 国产在线观看你懂得 | 日日干天天插 | 黄色小说在线免费观看 | 国产精品美女www爽爽爽视频 | 久久成人午夜视频 | 去看片 | 久久久久久久久爱 | 精品 一区 在线 | 久草干| 在线观看日本高清mv视频 | 最近2019中文免费高清视频观看www99 | 日韩理论在线播放 | 日韩三区在线 | 国产成人精品亚洲 | 日韩影视精品 | 国产成a人亚洲精v品在线观看 | www五月天 | 91成人在线观看高潮 | 亚洲精品久久久蜜桃 | 欧美成天堂网地址 | 人人狠狠综合久久亚洲婷 | 伊人色综合久久天天 | 在线免费观看麻豆 | 日韩一区二区三区高清在线观看 | 韩国av三级 | 日日夜夜操操操操 | 久久久性 | 97视频在线看 | 中文字幕五区 | 免费成人在线观看 | 日本黄色免费大片 | 欧美激情视频一区 | 99久久精品国产一区二区成人 | 一区二区电影网 | 一二三四精品 | 午夜精品在线看 | 黄色特级毛片 | 日日干美女 | 久久高清视频免费 | 国产人成精品一区二区三 | 国产免费久久精品 | 丝袜美腿在线播放 | 国产一级免费在线 | 中文字幕一区二区三区精华液 | 麻豆一区在线观看 | 天天天天色综合 | 欧美aa级 | 成人午夜久久 | 国产成人av免费在线观看 | 麻豆久久一区二区 | www激情com| 国产精品99免视看9 国产精品毛片一区视频 | 91精品国自产在线偷拍蜜桃 | 久久影视一区二区 | 国产剧情在线一区 | 亚洲精品在线免费 | 亚洲一区二区观看 | 香蕉视频在线观看免费 | 国产第一二区 | 国产1级毛片 | 免费热情视频 | 日本爱爱片 | 丁香五婷 | 国产亚洲精品久久久久久移动网络 | 免费在线a | 黄色软件在线观看免费 | 国产高清区 | 久久久久激情电影 | 国产手机在线视频 | 久久国产成人午夜av影院潦草 | 香蕉在线视频播放网站 | 97日日碰人人模人人澡分享吧 | 亚洲另类视频在线观看 | 成人亚洲精品久久久久 | 国产精品一区二区在线免费观看 | 国产视频资源 | 久久综合五月婷婷 | 国产成人久久精品 | 国产美女免费观看 | 99热精品久久 | 亚洲精品国产成人av在线 | 亚洲午夜av电影 | 五月天中文在线 | 国产精品久久久久永久免费看 | 97碰在线视频 | 久草电影免费在线观看 | 97视频免费在线看 | 国产一区二区不卡在线 | 日韩 在线观看 | 黄网在线免费观看 | 国产一区在线视频观看 | 五月婷婷开心 | 国产视频一区在线免费观看 | 久久ww| 午夜视频在线观看欧美 | 韩日电影在线免费看 | 91在线精品秘密一区二区 | 69av视频在线观看 | 黄色在线观看免费 | 99视频精品 | 黄a在线| 国产高清无av久久 | 91av片 | 欧美日韩不卡一区 | 日本乱码在线 | 又污又黄的网站 | 日韩在线观看网站 | 亚洲 欧美 91 | a极黄色片 | 国产精品久久久久久久免费 | www在线观看视频 | 国产手机免费视频 | 国产精品不卡视频 | 天天操天天爽天天干 | 三级黄色免费 | 精品一区二区三区香蕉蜜桃 | 国产精品第52页 | 中文字幕一区av | 成人播放器 | 欧美视频国产视频 | 免费的黄色的网站 | 亚洲国产人午在线一二区 | 亚洲美女精品视频 | 亚洲激情 在线 | 欧美成人xxx | 视频在线在亚洲 | 激情久久一区二区三区 | 国产在线专区 | www亚洲视频| 国产明星视频三级a三级点| 久久成人欧美 | 精品国产一区二区在线 | 中文字幕在线网址 | 在线免费观看黄色 | 日韩精品一区在线播放 | 久久tv| 日韩欧美v| 中文字幕五区 | 中文字幕有码在线播放 | 久久99精品久久久久久清纯直播 | 久久精品国产免费看久久精品 | 色多多污污在线观看 | 精品视频久久久 | 久久新| 精品资源在线 | 国产精品日韩在线 | 日本中文在线观看 | 国内成人精品视频 | 中文字幕 国产 一区 | 黄网在线免费观看 | 爱av在线网 | 午夜久久久久久久 | 久久中国精品 | 99视频国产在线 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 中文字幕av在线电影 | 人人插人人艹 | 免费观看高清 | 中文字幕在线观看不卡 | 成人国产精品免费观看 | 日日夜夜网 | 成人久久18免费 | 日韩高清不卡一区二区三区 | 激情喷水| 日韩中文字幕91 | 欧美久久久久 | 国产精品一区二区美女视频免费看 | 日韩激情第一页 | 免费三级a | 亚洲高清av | 五月婷婷狠狠 | 久久免费一级片 | 久久人人97超碰精品888 | 免费久久精品视频 | 精品影院一区二区久久久 | 不卡日韩av | 婷婷播播网 | 国产精品手机在线观看 | 中文字幕电影高清在线观看 | 日韩二三区 | 国产高清一 | 激情综合网五月婷婷 | 在线观看香蕉视频 | 一级电影免费在线观看 | 成人免费观看在线视频 | 特级黄色视频毛片 | 999久久a精品合区久久久 | 水蜜桃亚洲一二三四在线 | 成年人在线免费看视频 | 久草在线视频首页 | 依人成人综合网 | 亚洲三级av| 成年人在线免费视频观看 | 国产视频二 | av网址最新 | 日韩视频一区二区在线观看 | 日韩欧美一二三 | 成人中心免费视频 | 麻豆传媒在线免费看 | 久久亚洲国产精品 | 色综合久久88色综合天天人守婷 | 日韩在线高清视频 | 国内视频在线 | 午夜av在线播放 | 五月婷婷在线综合 | 欧美日韩在线播放 | 精品亚洲二区 | 国产一级免费在线观看 | 国产精品美女毛片真酒店 | 婷婷av网| av黄色成人 | 麻豆免费视频 | 日韩黄色大片在线观看 | 久草视频在线免费看 | 国产欧美精品在线观看 | 天天操天天干天天干 | 成人av一区二区在线观看 | 又黄又爽又无遮挡免费的网站 | 亚洲在线成人精品 | 四虎在线免费观看视频 | 婷婷色五| 五月综合激情 | 日韩免费在线观看网站 | 中文字幕一区二区三区在线播放 | 麻豆一区二区三区视频 | 正在播放国产精品 | 国产91精品久久久久久 | 最近免费中文字幕 | 在线a视频 | 在线免费色 | 欧美日韩中文字幕综合视频 | 国产91影院 | 69绿帽绿奴3pvideos | 中文字幕一区二区三 | 久草在线免费看视频 | 激情五月激情综合网 | 青青看片 | 丁香花在线视频观看免费 | 蜜桃av久久久亚洲精品 | 亚洲国产片色 | 国产亚洲精品久久久久久久久久久久 | 国产福利一区二区三区在线观看 | 日韩免费视频一区二区 | 国产精品日韩欧美一区二区 | 亚洲精品免费观看 | 亚洲国产日韩一区 | 久草视频在线免费播放 | 91看片淫黄大片一级在线观看 | 天天干天天操av | 狠狠狠综合| www.狠狠干| 九九交易行官网 | 日韩电影在线观看一区 | 久久国色夜色精品国产 | 伊人久久av | 天天操天天操天天爽 | 黄色福利视频网站 | 国产高清视频免费观看 | 视频在线日韩 | 亚洲九九九 | 久久99热精品| 成人国产在线 | 欧美乱大交 | 午夜久久久久久久 | 国内精品久久久久影院优 | 午夜少妇一区二区三区 | 日日草夜夜操 | 午夜精品av在线 | 午夜精品福利一区二区 | 97超碰站| 成 人 黄 色 片 在线播放 | 久久九九精品 | 九九九九九九精品 | 亚州国产精品久久久 | 91亚洲激情 | 91探花在线 | 又黄又刺激的网站 | 在线观看日韩视频 | 久久在线观看 | 国产麻豆剧传媒免费观看 | 欧美日韩伦理在线 | 天天综合婷婷 | 日韩黄色大片在线观看 | 精品一区久久 | 亚洲自拍自偷 | 日韩在线观看视频中文字幕 | 成人91免费视频 | 亚洲国产中文字幕在线观看 | 成人免费一区二区三区在线观看 | 91精品国产高清自在线观看 | 91视频网址入口 | 久久精选| www色| 久艹在线观看视频 | 毛片1000部免费看 | 视频一区视频二区在线观看 | av在线免费播放网站 | 91av视频在线观看 | 91黄色影视 | 午夜私人影院久久久久 | 91少妇精拍在线播放 | 欧美一级免费黄色片 | 欧美另类高清 videos | 男女精品久久 | 久久免费在线观看视频 | av黄色免费网站 | 免费观看v片在线观看 | 一区二区精 | 久久国产一区 | 黄色免费观看视频 | 欧美日韩国产在线精品 | 精品国产1区2区 | 黄污在线看 | 久久久久久久久久久久久久免费看 | 日日麻批40分钟视频免费观看 | 婷婷中文字幕在线观看 | 国产成人精品午夜在线播放 | 色综合久久久久网 | 午夜色影院| 91桃色免费观看 | 欧美a级在线 | 免费亚洲精品 | 色狠狠婷婷 | 日韩精品一区二区三区高清免费 | av免费在线播放 | 中文在线8资源库 | 97色婷婷成人综合在线观看 | 久久国产精品网站 | 色综合在| 亚洲在线视频免费观看 | 国产精品一区二区三区视频免费 | av7777777 | 久草久草久草久草 | 成人午夜电影在线观看 | 免费男女羞羞的视频网站中文字幕 | 亚洲精品中文在线资源 | av在线a | 高清精品视频 | 国产一二三四在线视频 | 中文字幕在线观看视频一区二区三区 | 日本中文字幕网站 | 亚洲影视九九影院在线观看 | 91香蕉视频污在线 | 337p日本大胆噜噜噜噜 | 日韩高清在线一区二区 | 国产视频1| 极品中文字幕 | 91中文字幕在线播放 | 99国产精品久久久久老师 | 国产在线资源 | 精品久久一区二区 | avhd高清在线谜片 | 狠狠躁日日躁狂躁夜夜躁av | 亚洲日本在线一区 | 九九综合九九 | 99精品久久99久久久久 | 久久精品国产亚洲aⅴ | 久久99在线视频 | 在线播放精品一区二区三区 | 亚洲极色 | 在线 你懂 | 精品影院一区二区久久久 | 黄网站免费看 | av免费在线观看网站 | 中文成人字幕 | 激情五月激情综合网 | 99999精品 | 国产精品毛片一区视频 | 国产精品999久久久 久产久精国产品 | 国产小视频在线免费观看视频 | 久久久久久久久久久综合 | 久久99精品国产99久久 | 成人在线免费看视频 | 顶级bbw搡bbbb搡bbbb | 日本久久精 | 日韩精品影视 | 国产精品毛片久久久久久 | 天天综合在线观看 | 久久视频在线观看中文字幕 | 亚洲成人资源在线观看 | 在线观看视频99 | 精品国产99| 成人av电影免费在线观看 | 97精品欧美91久久久久久 | av专区在线 | 精品一区二区免费在线观看 | 天天干天天操天天入 | 97在线视 | av一区二区三区在线观看 | 国产精品第72页 | 国产一区二区三区久久久 | 视频在线一区二区三区 | 婷婷久久国产 | 国产精品都在这里 | 日韩精品一卡 | 免费三级大片 | 成人免费看片网址 | 色综合久久精品 | 欧美另类69 | 97在线视频观看 | 国产va饥渴难耐女保洁员在线观看 | 欧美日韩视频一区二区三区 | 成人av电影免费在线播放 | 色综合久久久久综合体桃花网 | 91九色视频观看 | 特级黄色片免费看 | 久久精品网址 | 欧美巨乳波霸 | 色吧久久 | 在线精品亚洲一区二区 | 色偷偷888欧美精品久久久 | 精品视频久久 | 免费看的黄网站 | 天堂av在线网站 | 精品视频在线免费 | 精品亚洲一区二区 | 在线观看亚洲精品 | 久久久久久蜜av免费网站 | 国产小视频你懂的在线 | 人人澡人 | 亚洲 欧美 国产 va在线影院 | 久久免费99精品久久久久久 | 青青草久草在线 | 欧美日韩精品影院 | 免费视频a| 天堂在线一区二区 | 在线香蕉视频 | 成人av电影在线观看 | 香蕉视频在线免费 | 免费久草视频 | 免费国产在线观看 | 一本一本久久a久久精品综合小说 | 最近免费中文视频 | 在线看一级片 | 国产一区视频在线观看免费 | 狠狠操欧美 | 日日弄天天弄美女bbbb | 国产成人精品久久久久蜜臀 | 99热这里是精品 | 久久久高清免费视频 | 亚洲九九精品 | 午夜电影中文字幕 | 青青河边草观看完整版高清 | 亚洲黄色网络 | 国产一区成人在线 | 国产精品视频全国免费观看 | 日韩av片免费在线观看 | 天天爽夜夜爽人人爽一区二区 | 成人在线视频免费看 | 久久久久久草 | 在线免费观看国产视频 | 最近免费在线观看 | 亚洲黄色一级电影 | avcom在线| 免费瑟瑟网站 | 亚洲国产美女精品久久久久∴ | 人人爽人人爽人人片av免 | 四虎精品成人免费网站 | 日韩网站在线观看 | 国产精品区二区三区日本 | 精品免费在线视频 | 午夜精品电影 | www.夜夜爽 | 国产 视频 久久 | 国内精品在线看 | 99视频这里有精品 | 日日躁夜夜躁xxxxaaaa | 91大神在线看| 久久在现视频 | 91丨九色丨蝌蚪丨对白 | 国产人成在线观看 | 欧美成人精品在线 | 999国内精品永久免费视频 | 国产 日韩 中文字幕 | 91日韩在线播放 | 欧美一区成人 | 97精品国产91久久久久久 | 欧美男同视频网站 | 在线观看视频你懂的 | 久久精品国产亚洲精品2020 | 国产亚洲成人网 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲资源一区 | 五月天色婷婷丁香 | 国产精品视频免费观看 | 狠狠综合网 | 高清国产午夜精品久久久久久 | 中文字幕精 | 精品一区二区久久久久久久网站 | 91福利视频免费 | 日本最新高清不卡中文字幕 | 97超在线 | 婷婷日 | 日韩三区在线观看 | 午夜精品久久久久久久久久久久久久 | 狠狠搞,com | 天天干天天天 | 在线看毛片网站 | 四虎海外影库www4hu | 国产中文在线视频 | 日日操夜| 色av男人的天堂免费在线 | 偷拍精品一区二区三区 | 国产免费二区 | 色综合久久久久久久久五月 | 天天色天天操天天爽 | 四虎成人精品永久免费av | 国产在线观看免 | 国产欧美中文字幕 | 在线观看mv的中文字幕网站 | 六月激情婷婷 | 欧美资源在线观看 | 久久久久国产成人免费精品免费 | 十八岁以下禁止观看的1000个网站 | 久草在线高清 | 亚洲无人区小视频 | 超碰在线最新地址 | 日韩二区三区在线观看 | 亚洲伊人成综合网 | 超碰大片 | 97av影院| 久久成人免费电影 | 欧美日韩精品免费观看 | 免费三级黄色片 | 中文字幕激情 | 久久综合久久综合这里只有精品 | 手机在线观看国产精品 | 欧美激情综合五月 | 四虎欧美| 日本最新中文字幕 | 国产美女搞久久 | 精品av在线播放 | 日韩视频在线不卡 | 国内少妇自拍视频一区 | 久久影院中文字幕 | 久久久精品国产免费观看一区二区 | 成人a大片 | 国产精品一区二区久久精品爱涩 | 丁香激情五月 | 操操碰| 久久精品一级片 | 亚洲欧美日韩中文在线 | 992tv在线 | 天天射天天操天天 | 黄色成人免费电影 | 精品国产aⅴ麻豆 | 日韩av电影免费在线观看 | 国产精品99久久久精品免费观看 | 久久人操 | 五月天婷婷丁香花 | 免费观看91视频 | 天天爽夜夜爽人人爽一区二区 | 日韩精品一区二区三区电影 | 玖玖综合网 | 欧美性生活小视频 | 国产精品成人一区二区 | 欧美一二三视频 | 国产精品尤物视频 | 日韩欧美在线视频一区二区 | 综合网天天射 | 香蕉视频网站在线观看 | 国产精品嫩草69影院 | 97电影手机版 | 国产精品免费视频观看 | 日韩在线观看电影 | www黄色av| 精品国产一区二区三区久久影院 | 国产午夜精品久久 | 看国产黄色片 | 日韩免费在线观看网站 | 亚洲精品视频在线观看网站 | 毛片永久免费 | av电影一区二区三区 | 精品欧美一区二区三区久久久 | 久久久久国产精品午夜一区 | 久久视频国产精品免费视频在线 | 国产亚洲成av片在线观看 | 中文字幕资源网 国产 | 九九色网 | 欧美日本在线观看视频 | 久久不卡免费视频 | 亚洲激情五月 | 国产视频资源 | 97视频在线观看网址 | 91chinesexxx| 在线之家免费在线观看电影 | 国产网站在线免费观看 | 蜜臀精品久久久久久蜜臀 | 国产精品不卡视频 | 99热精品视| 久99久精品 | 97超碰成人在线 | 久久久久成人精品 | 久草在线看片 | 中文字幕一区在线观看视频 | 视频在线在亚洲 | 99热在线观看 | 97福利在线观看 | 六月婷操 | 亚洲免费成人av电影 | 久草在线精品观看 | www.国产在线 | 91精品视频在线免费观看 | 精品成人在线 | 亚洲综合在线一区二区三区 | 丁香六月综合网 | 亚洲国产偷 | 欧美日韩在线视频观看 | 中文字幕一区二区三区在线视频 | 五月综合色 | 97视频网址| 亚洲免费专区 | 西西大胆免费视频 | 天天操伊人 | 中文字幕av免费观看 | 日日摸日日添日日躁av | 91天天操 | 久一网站| 欧美人操人 | 激情伊人| 日本久久精品 | 久久久久久高潮国产精品视 | 在线香蕉视频 | 婷婷丁香色综合狠狠色 | 成人一级免费电影 | 久久精品区 | 91黄色视屏 | 欧美一级视频免费看 | 久久综合久久综合这里只有精品 | sesese图片| 亚洲精品在线一区二区 | 天天操夜夜叫 | 免费视频久久久 | 日韩高清在线看 | 狠狠色狠狠色合久久伊人 | 97超级碰| 免费在线激情电影 | 久久亚洲热 | 国产小视频网站 | 手机av看片 | 中文字幕第一页av | 欧美成人性战久久 | 91精品国产91热久久久做人人 | 人人爱人人爽 | 亚洲国产成人在线观看 | 日韩一区二区三区在线看 | 高清不卡毛片 | 免费在线视频一区二区 | 亚洲综合视频在线 | 中文字幕av在线不卡 | 国产精品毛片久久久久久久久久99999999 | 国产中文字幕一区 | 国产小视频在线观看免费 | 五月婷婷综合激情网 | 91精品国产成人 | 九色福利视频 | 99热超碰在线 | 日韩国产精品一区 | 欧美精品久久久久久久 | 色在线免费观看 | 亚洲国产资源 | 黄色视屏av| 97在线视频免费 | 蜜臀一区二区三区精品免费视频 | 91亚洲精品国偷拍自产在线观看 | 99久久www| 国产中文伊人 | 伊人久久国产 | 国产99久久精品一区二区永久免费 | 99久久激情| 国产成人精品一区二区三区 | 天天操偷偷干 | 欧美国产91 | 日韩欧美69| 国产手机av在线 | 正在播放一区二区 | 亚洲一区免费在线 | 永久免费视频国产 | 久草网在线视频 | 日本 在线 视频 中文 有码 | 国产精品6999成人免费视频 | 色夜视频| 国产999视频| 亚洲欧美综合 | 午夜久久精品 | 在线观看久久 | 国产看片免费 | 午夜久久成人 | 高潮毛片无遮挡高清免费 | 中文字幕在线免费 | 一区二区视频在线免费观看 | 欧美精品一区二区三区一线天视频 | 国产高清不卡av | 高清av在线| 国产色资源 | 日日夜夜精品视频天天综合网 | 亚洲精品乱码白浆高清久久久久久 | 99精品国产视频 | 字幕网av| 成人三级黄色 | 日日添夜夜添 | 久久激情视频 久久 | 九九热在线视频 | 一区中文字幕 | 91热视频| 麻豆视频国产 | 一区二区观看 | 久日精品 | 91精品国产自产老师啪 | 国产一级二级三级视频 | 日韩中文字幕电影 | 国产精品高潮呻吟久久av无 | 久草网视频在线观看 | av黄色一级片 | 在线观看色视频 | 2017狠狠干 | 波多野结衣日韩 | 日本一区二区三区视频在线播放 | 四虎影视4hu4虎成人 | 天天色综合1 | 国产黄在线免费观看 | 五月婷婷在线播放 | 免费福利视频导航 | 91亚洲国产| 婷婷激情在线 | av成人免费 | 国产成人av一区二区三区在线观看 | 日本资源中文字幕在线 | 国产 色 | 欧美日韩国语 | 亚洲四虎 | 成年人免费看片网站 | 日本久久久久久科技有限公司 | 天天干天天摸天天操 | 亚洲最新在线视频 | 国产成人精品久久二区二区 | 欧美日韩一区久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产精品九九九九九 | 日日操网站| 在线成人免费电影 | 精品在线视频一区 | 日韩精品字幕 | 免费a v网站| 亚洲.www| 中文字幕av影院 | 狠狠狠的干 | 天天干天天插 | 天天综合网在线 | 色片网站在线观看 | 国产在线精品二区 | 成人免费看片98欧美 |