簡體   English   中英

Joomla數據庫內存泄漏

[英]Joomla database memory leak

我的客戶在Amazon EC2上托管了一個基於Joomla的大型網站,具有1.5GB的內存。 該服務器同時托管Apache和MySQL。 現在,數據庫大小約為250MB,網站每天的訪問量約為5000。看起來網站上存在嚴重的內存泄漏,因為有時MySQL使用約99%的CPU內存,然后崩潰。 我曾嘗試優化數據庫表,修改.cnf ,但仍然沒有任何改善。

Joomla智能搜索使用的查找程序表占用了100MB以上的數據庫大小。 我已禁用智能搜索,但是仍然出現問題。

朋友,請提出一些建議解決此問題。

謝謝。

以下是my.cnf文件

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

symbolic-links=0
bind-address            = 127.0.0.1

default-storage-engine=innodb
transaction-isolation    =   REPEATABLE-READ
character-set-server    =   UTF8
collation-server      =   UTF8_general_ci

max_connections         = 5000
wait_timeout            = 30
connect_timeout         = 60
#interactive_timeout     = 600
#max_connect_errors      = 1000000
#max_allowed_packet      = 10M


skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

slow_query_log
long_query_time = 2

[mysqld_safe]
log-error=/var/log/mysqld.log
myisam_sort_buffer_size = 64M

我敢打賭,您會受到流氓機器人的攻擊-那里的許多SEO蜘蛛之一,或者諸如80legs之類的工具,這些工具使人們對機器人網絡進行編程以執行任務-時常在編程錯誤中導致重炮轟。

我永遠不記得哪個MySQL設置一次占用內存,每個連接哪個內存-但是由於您設置為最多允許5000個同時連接,並且某些緩沖區為2和8 MB,所以我敢打賭,重載很容易超過可用的總閘板。

您當前的設置將使您的所有日常流量同時達到目標。 我會將其降低到100或更少的設置,看看是否可以提供更大的穩定性。

那里有各種MySQL調諧器腳本,可以幫助您發現分配過多內存的位置。

但是,如果您在崩潰/高負載期間有訪問日志,盡管如此,我還是會檢查惡意機器人-我們一直在不斷努力爭取在我們監控/控制的某些網站上使用它們。

您可能還會檢查thread_concurrency值-取決於可用的CPU數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM