999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

排查網站查詢緩慢故障

2019-12-24 00:44:01河南劉進京
網絡安全和信息化 2019年11期
關鍵詞:進程數據庫信息

■河南 劉進京

某商品銷售網站出現了查詢緩慢的問題,當執行商品信息查詢時,需要等待十幾秒才出現回應信息,這給用戶正常訪問帶來了不便。

該網站采用了Python Flask 開發,后臺使用的是MySQL 數據庫,所有的商品信息都存儲在MySQL 數據庫中,用戶或應用可以通過MySQL接口,根據提供的商品信息,來查詢對應的數據。但是過于緩慢的查詢速度,讓網站無法正常為外界提供服務。

故障排查

登錄到Web 服務器上,對系統狀態進行檢測,發現當執行任意命令后,都會稍微停頓一下才看到回應信息,可以明顯察覺系統響應速度變慢。

對于該情況,首先查看系統資源使用情況,檢測其是否存在異常狀態。執行“top”命令,在返回信息中可以看到,兩個CPU 的iowait 值都比較高,尤其對于CPI0 來說,其iowait 的值已經超過70%。但是對于各個進程進行查看,其CPU 占用率并不高。

根據以上分析,CPU 的使用情況還算比較正常,接下來需要排查I/O 使用情況,檢測問題是都磁盤的I/O 瓶頸有關。執行“iostat”命令,根據返回信息,發現磁盤每秒的讀取速率較高,I/O 使用率為98%,幾乎處于完全飽和的狀態。這表明磁盤的讀取出現了瓶頸。

接著需要找到究竟是什么進程造成了這么高的磁盤讀取情況。執行“pidstat-d 1”命令,顯示進程的I/O使用情況。

在返回信息中看到,對于PID 為28716 的進程來說,在其“kB_rd/s”列中顯示較高的磁盤讀取值,這說明該進程正在進行大量的讀操作,其讀取的速率和上述執行“iostat”命令檢測到的數值基本一致,該PID 對應的是“mysqld”進程。這說明“mysqld”進程引發了I/O 瓶頸問題。

但是,該進程為什么要去讀取大量的磁盤數據呢,這很有可能和MySQL 的慢查詢有關。對于慢查詢來說,其造成的故障現象基本上都會CPU 使用率過高的問題,一般并不會引發I/O 瓶頸。

要想對MySQL 讀取數據情況進行分析,需要使用到Strace 命令。我們知道,Strace 是一個可用于診斷、調試和教學的Linux 用戶空間跟蹤器。可以利用該命令來監控用戶空間進程和內核的交互,比如系統調用、信號傳遞、進程狀態變更等。因為MySQL 是一個支持多線程的數據庫工具,因此需要對其使用到的線程進行全面分析。

執 行“strace -f -p 28716”命令,在返回信息中顯示和MySQL 相關的所有線程的數據讀取信息,可以看到PID 為21970 的線程正在讀取大量的磁盤數據,其讀取的文件描述符編號為91,接著需要查找與該編號對應的文件。

執行“lsof -p 21970”命令,奇怪的是并沒有返回任何信息,說明沒有找到對應的文件。執行“echo $?”命令,得到的返回值為“1”,這說明上述命令執行失敗,因為只有返回“0”,才說明沒有問題。這表明MySQL 使用了很多線程,僅僅使用其中一個線程號進行查詢是沒有辦法找到目標文件的。

執行“lsof -p 28716”命令,使用MySQL 的進程的PID 進行查看,在返回信息中顯示MySQL 打開了很多的文件,根據上述文件描述符的編號,發現與其對應的文件為“/var/lib/data/products.myd”,注意MySQL是以讀寫方式訪問該文件的。

根據這些信息,說明使用了MyISAM 引擎來存儲數據。即MySQL 在讀取“DATA”數據庫中的“products”數據表。進入該目錄,執行“ls”命令,可以顯示相關的表文件,索引文件,元數據文件和原信息文件等。

進入MySQL 控制臺,執行“show global variables like "%datadir% ";”命令,可以看到MySQL 當前正在使用的數據庫路徑,這和上述查詢到的信息一致。執行“show full processlist;”命令,在返回信息中顯示當前的用戶名、主機名、使用的數據庫名稱、執行的命令類型,執行的時間、狀態、執行的語句等信息,例如在“Command”列中顯示“query”,表示執行的額是查詢操作,在“Info”列中顯示具體的查詢語句。

故障解決

對于MySQL 的慢查詢來說,如果沒有設置好索引的話,很容易出現查詢緩慢的問題。執行“use data;”,“explain xxx;”命令,其中的“xxx”為在上述命令中找到的查詢命令。

在返回信息中的“select_type”列中顯示查詢的類型,這里顯示為“simple”,表示查詢中沒有包括“union”查詢或者子查詢,在“table”列中顯示數據表的名稱,在“type”列中顯示查詢類型,在“possible_keys”列中顯示可能引用的索引,這里為“NULL”。在“key”列中顯示確切使用的索引,這里為“NULL”。在“rows”列中顯示掃描的行數。

根據以上分析,這里并沒有使用索引,當掃描的行數很多時,自然會出現反應遲緩的問題。

看來,只要為其配置好索引,問題就可以解決了。執 行“CREATE INDEX products_index ON products(produceID);”命令,為該表添加索引,但是出現“EEEOR 1170”的錯誤信息,這說明必須為該字段設置一個合適的前綴長度。

執行“CREATE INDEX products_index ONproducts(product ID(64));”命令,使用一個合適的的數值來充當前綴,順利為該表創建索引。這樣,再執行查詢時,可以看到速度大大提高了。

根據以上分析,不難發現對于MySQL慢查詢來說,如果沒有設置索引的話,很容易出現查詢緩慢的問題。其實,對于MySQL 的MyISAM 引擎來說,其主要依靠系統緩存來加速磁盤的I/O 訪問,如果系統中存在其他的進程,必然會占用一定的系統緩存,就會造成MyISAM引擎引擎難以充分利用系統緩存,自然會造成運行緩慢等問題。

所以,不要將MySQL 等程序的的性能優化完全建立在系統緩存之上,最好能夠在應用程序內部分配內存,組建完全自主控制的緩存管理機制。

猜你喜歡
進程數據庫信息
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
主站蜘蛛池模板: 午夜少妇精品视频小电影| 国产微拍一区二区三区四区| 日本欧美一二三区色视频| 超清无码熟妇人妻AV在线绿巨人| 97久久超碰极品视觉盛宴| 欧洲一区二区三区无码| 熟女成人国产精品视频| 爱爱影院18禁免费| 午夜精品久久久久久久无码软件| 高清大学生毛片一级| 波多野结衣无码视频在线观看| 一级片免费网站| 在线观看亚洲成人| 国产精品手机在线观看你懂的| 九九久久99精品| v天堂中文在线| 九九九九热精品视频| 在线观看网站国产| 欧美国产日产一区二区| 中文无码日韩精品| 国产一级毛片网站| 国内熟女少妇一线天| 久久久久亚洲精品成人网| 3344在线观看无码| 成年人福利视频| 国产三级精品三级在线观看| 亚洲视频欧美不卡| 国产精品吹潮在线观看中文| 日韩欧美中文字幕一本| 香蕉eeww99国产精选播放| 精品久久综合1区2区3区激情| 欧美在线精品一区二区三区| 国产欧美在线| 99在线观看免费视频| 伊伊人成亚洲综合人网7777| 亚洲综合网在线观看| 国内丰满少妇猛烈精品播 | 四虎永久免费地址| 精品成人一区二区三区电影 | 69视频国产| 成人精品午夜福利在线播放| 欧美精品伊人久久| 欧美精品一二三区| 久久香蕉国产线| 在线亚洲小视频| 日韩免费中文字幕| 伊人色综合久久天天| a免费毛片在线播放| 国产午夜无码专区喷水| 黄色a一级视频| 欧美一级在线| 午夜不卡视频| 五月天天天色| 国产 在线视频无码| 国内精品一区二区在线观看| 精久久久久无码区中文字幕| 国产精品亚欧美一区二区三区| 欧美α片免费观看| 又爽又黄又无遮挡网站| 一本一本大道香蕉久在线播放| 2021亚洲精品不卡a| 久久婷婷人人澡人人爱91| 免费毛片网站在线观看| 欧美激情视频一区| 日韩欧美综合在线制服| 久久精品无码一区二区国产区| 亚洲国产清纯| 91色综合综合热五月激情| www成人国产在线观看网站| 激情综合婷婷丁香五月尤物| www.亚洲天堂| 欧美午夜精品| 欧美一区二区啪啪| 国产女人18水真多毛片18精品| 欧美日韩一区二区三| 超清无码熟妇人妻AV在线绿巨人| 麻豆国产精品视频| 亚洲AV人人澡人人双人| 无码AV高清毛片中国一级毛片| 伊人丁香五月天久久综合 | 99在线视频网站| 一级毛片中文字幕|