gpt4 book ai didi

php - Joomla 数据库内存泄漏

转载 作者:行者123 更新时间:2023-11-30 23:26:02 24 4
gpt4 key购买 nike

我的客户有一个非常大的基于 Joomla 的网站托管在 Amazon EC2 上,内存为 1.5GB。服务器托管 Apache 和 MySQL。现在数据库大小约为 250MB,网站每天的流量约为 5000。看起来网站上存在严重的内存泄漏,因为有时 MySQL 使用了大约 99% 的 CPU 内存然后崩溃。我已经尝试优化数据库表,修改我的.cnf,但仍然没有任何改进。

Joomla 智能搜索使用的查找器表占用超过 100MB 的数据库大小。我已禁用智能搜索,但问题仍然存在。

friend 们,请提出一些解决这个问题的建议。

谢谢。

下面是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 MB 和 8 MB,我敢打赌总计重负载下的内存使用量很容易超过可用的内存总量。

您当前的设置将允许您所有的日常流量同时发生。我会把它降低到 100 或更少的设置,看看是否能提供更高的稳定性。

有各种 MySQL 调谐器脚本可以帮助您发现分配过多内存的位置。

如果您有崩溃/高负载前后的访问日志,我会检查是否存在恶意机器人 - 我们一直在努力控制我们监控/控制的某些网站上的机器人。

您还可以检查 thread_concurrency 值 - 取决于您有多少 CPU 可用。

关于php - Joomla 数据库内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com