Mysql

我的 sql 在啟動時消耗多達 60% 的 cpu 時間

  • August 1, 2012

我在 Amazon Ec2 微型實例(linux ami)上執行 Wordpress 安裝。使用預設配置 Apache 一直用完所有記憶體並關閉 mysql 使 wordpress 無法正常工作。

我根據使 WordPress 在 EC2-Micro 上穩定的資訊調整了我的 apache 配置 ,並將 mysql 配置更改為小型伺服器的範例配置。這些調整似乎已經解決了記憶體問題。

但是,我注意到,關閉 mysqld 服務後,cpu 使用率徘徊在 0 -5% 左右,其中 10% 是峰值,但是一旦我啟動 mysqld,cpu 時間就會保持在 40 -60% 之間。這是正常的嗎?如果不是,我該怎麼做才能補救。它只是一個測試伺服器,因此該站點幾乎沒有流量。我還檢查了 mysqladmin processlist 和 stat 命令,沒有任何“邪惡”查詢的跡象。

這裡的關鍵字是micro實例。只要您對延遲感到滿意,Micros 是處理低需求和間歇性負載的好方法。啟動時發生的情況是您正在消耗您的 cpu “尖峰”緩衝區,然後虛擬機被箝制,導致高竊取時間。這就是 micros 的設計方式,而不是 WP 或 MySQL 甚至您的 AWS 設置的問題。

AWS 文件中的這個頁面討論了 micros 以及它們在負載下的行為。聽起來您的工作負載(測試伺服器,沒有使用者)非常適合使用 micro,只需注意重新啟動服務時會發生的 cpu 箝位。

我使用微型實例在 Plone 上工作,它在啟動時會消耗大量的 cpu。一開始我還挺驚訝的,習慣了就好了。EDIT- 建議升級到 asmall但看到 OP 關於使用免費層的評論。免費套餐的使用就是這樣,是對 AWS 的一個很好的介紹,但不是生產設置。

引用自:https://serverfault.com/questions/411493