日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

负载情况

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 负载情况 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于機器自身也可能影響到負載情況,這邊提供如下幾個命令的操作截圖(root權限下),方便進一步排查。


命令:?
? ? linux:
? ? ? ? 1.?
? ? ? ? ? ? A: vmstat 2 10
? ? ? ? ? ? B: 第 1 列 r 的值如果長時間大于 CPU 的核心數,說明云主機 CPU 緊張。
? ? ? ? ? ? C: 第 17列 st 值如果長時間大于 3,說明物理機 CPU 緊張。


? ? ? ? 2.?
? ? ? ? ? ? A: top -d 2
? ? ? ? ? ? B: 然后按 1, 查看什么程序占用 CPU 高。


? ? ? ? 3.?
? ? ? ? ? ? A: sar -n DEV 2 10


? ? ? ? 4.
? ? ? ? ? ? A. iostat -xmt 2 10
? ? ? ? ? ? B. free -m

? ? ? ? ? ? C. 其中的 await 值如果長時間大于 10ms 或者 %util 長時間大于 70% 時,說明磁盤 IO 緊張。使用 iotop -d 2 查看什么程序占用了 IO,如果占用 IO 的應用類型是 DB 之類的,建議用戶使用 UDB。如果占用 IO 的應用類型是 hadoop、hbase 之類,建議用戶使用大數據機型或 UDDP。


df -hl 查看磁盤情況



開啟慢查詢

方法一:在服務器上找到mysql的配置文件my.cnf , 然后再mysqld模塊里追加一下內容

log_slow_queries = NO
log-slow-queries = /var/run/mysqld/slow_querys.log?
long_query_time = 3?
log-queries-not-using-indexes?
log-slow-admin-statements

然后重啟mysql服務器即可,這是通過一下命令看一下慢查詢日志的情況:

tail -f /var/run/mysqld/slow_querys.log

方法二:通過修改myssql的全局變量來處理,這樣做的好處是,不用重啟mysql服務器,登陸到mysql上執行一下sql腳本即可

set global slow_query_log=ON;

set global long_query_time=3;

然后通過一下命令查看是否成功

mysql> show variables?like?'long%'; +-----------------+-----------+ | Variable_name? | Value? ? | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row?in?set?(0.00 sec) mysql> show variables?like?'slow%'; +---------------------+---------------+ | Variable_name? ? ? | Value? ? ? ? | +---------------------+---------------+ | slow_launch_time? ? | 2? ? ? ? ? ? | | slow_query_log? ? ? |?ON? ? ? ? ? ??| | slow_query_log_file | /tmp/slow.log | +---------------------+---------------+ 3?rows?in?set?(0.00 sec)

分析慢查詢日志

方法一:通過查看mysql的慢查詢日志分析,比如我們可以tail -f? slow_query.log查看里面的內容,字段意義

# Time: 110107 16:22:11?
# User@Host: root[root] @ localhost []?
# Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774?
SET timestamp=1294388531;?
select count(*) from ep_friends;?
第一行,SQL查詢執行的時間?
第二行,執行SQL查詢的連接信息?
第三行記錄了一些我們比較有用的信息?
Query_time SQL執行的時間,越長則越慢?
Lock_time 在MySQL服務器階段(不是在存儲引擎階段)等待表鎖時間?
Rows_sent 查詢返回的行數?
Rows_examined 查詢檢查的行數

方法二:使用mysqldumpslow命令分析,例如

mysqldumpslow -s c -t 10 /tmp/slow-log

這會輸出記錄次數最多的10條SQL語句,其中:

-s, 是表示按照何種方式排序,c、t、l、r分別是按照記錄次數、時間、查詢時間、返回的記錄數來排序,ac、at、al、ar,表示相應的倒敘; -t, 是top n的意思,即為返回前面多少條的數據; -g, 后邊可以寫一個正則匹配模式,大小寫不敏感的;

比如
/path/mysqldumpslow -s r -t 10 /tmp/slow-log
得到返回記錄集最多的10個查詢。
/path/mysqldumpslow -s t -t 10 -g “left join” /tmp/slow-log
得到按照時間排序的前10條里面含有左連接的查詢語句。

慢查詢日志的不足

雖然記錄了slow query能夠幫助你優化產品。但是MySQL目前版本,還有幾大蹩足的地方。
1.MySQL5.0版本, long_query_time時間粒度不夠細,最小值為1秒。對于高并發性能的網頁腳本而言,1秒出現的意義不大。即出現1秒的查詢比較少。直到mysql5.1.21才提供更細粒度的long_query_time設定.


2.不能將服務器執行的所有查詢記錄到慢速日志中。雖然MySQL普通日志記錄了所有查詢,但是它們是解析查詢之前就記錄下來了。這意味著普通日志沒辦法包含諸如執行時間,鎖表時間,檢查行數等信息。


3.如果開啟了log_queries_not_using_indexes選項,slow query日志會充滿過多的垃圾日志記錄,這些快且高效的全表掃描查詢(表小)會沖掉真正有用的slow queries記錄。比如select * from category這樣的查詢也會被記錄下來。開啟了log_queries_not_using_indexes選項,slow query日志會充滿過多的垃圾日志記錄,這些快且高效的全表掃描查詢(表小)會沖掉真正有用的slow queries記錄。比如select * from category這樣的查詢也會被記錄下來。



總結

以上是生活随笔為你收集整理的负载情况的全部內容,希望文章能夠幫你解決所遇到的問題。

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