gpt4 book ai didi

mysql "memory usage"越来越大

转载 作者:行者123 更新时间:2023-11-29 03:23:49 26 4
gpt4 key购买 nike

我有一个用 PHP 和 MYSQL 老式构建的非常大的网站。

我的网站上有超过 1,000 个不同的查询,在不同的 PHP 页面上,要将它们全部更新到 MYSQLI 真的很难。

我购买了 4GB RAM 的 VPS 服务器,在过去的几个月里,我的页面加载速度非常慢。

当我重新启动我的服务器时,一切运行顺利,但几个小时/几天后,网站变得越来越慢,页面加载时间超过 3 秒。我注意到 mysqld 服务的内存使用量在不断增加,从服务器重启时的 80MB 增加到大约 400MB 甚至更多。

我在 index.php 的末尾添加了 mysql_close(),但连接数似乎仍在增加。

问题什么会导致mysql内存使用量无限增加?将我的所有查询更新为 MYSQLI 可能会提高性能?

一些信息:

innodb_version
5.5.31
protocol_version
10
slave_type_conversions
version
5.5.31-log
version_comment
MySQL Community Server (GPL)
version_compile_machine
x86_64
version_compile_os
Linux

存储引擎:混合(有些表是INNODB,有些表是MyISAM。我的.cnf:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
max-connections=100000
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
thread_cache_size=5
table_open_cache=99390
sort_buffer_size=512M
read_rnd_buffer_size=512M
query_cache_size=512M
query_cache_limit = 16M
query_cache_type = 1
slow_query_log=1
slow_query_log_file=slow_query_log.log #
long_query_time=5
log-queries-not-using-indexes=1


[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

当我使用 show processlist

时,我有大约 6-7 个查询正在运行

最佳答案

max-connections=100000 -- 哎呀!降到 1000

table_open_cache=99390 -- 下降到,比方说,2000

sort_buffer_size=512M -- 降低到 RAM 的 1%,比如 40M

read_rnd_buffer_size=512M -- 同上

query_cache_size=512M -- 太大;放慢速度;降到40M

long_query_time=5 -- 不够低,无法捕获太多;下降到 2

log-queries-not-using-indexes=1 -- 在不提供太多信息的情况下使慢日志变得困惑;变为0

您没有说您使用的是哪个引擎。阅读this寻求有关 MyISAM 和 InnoDB 的建议。

1000 页——并不算多。

哪个网络服务器?如果是 Apache,请不要将 MaxClients 设置为超过 20。

2022 后记:query_cache_sizequery_cache_type 变量已removed from mySQL 8.0.3+ .

关于mysql "memory usage"越来越大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596932/

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