
如何取得佔用 RAM 的進程的詳細資訊。從頂部指令我發現 Mysql 佔用了太多的 ram 我怎麼知道為什麼 Mysql 佔用了太多的 ram 遠離正常行為?
除了“之外,還有其他命令可以獲得進程的更多詳細資訊嗎?”附註」
答案1
您可能想要SHOW PROCESSLIST
在 MySQL 中執行以取得有關目前正在執行的查詢的資訊。
答案2
mytop - 用於監控即時 MySQL 伺服器效能的命令列實用程式。為了讓 mytop 正常運行,您必須具備以下條件:
- Perl 5.005 或更新版本
- Getopt::長
- DBI 和 DBD::mysql
- 術語::從 CPAN 讀取密鑰
以上,我是針對 Linux 發行版指定的。
答案3
聽起來 MySQL 在處理未最佳化的查詢時必須建立大型記憶體臨時表。
如果未啟用,請透過將以下內容新增至 my.cnf 檔案來啟用慢查詢日誌:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
然後查看 /var/log/mysql/mysql-slow.log 檔案。您應該對文件中列出的每個查詢執行 EXPLAIN,以了解執行該查詢時發生的情況。有了這些知識,您就可以優化查詢以獲得更好的效能。