【发布时间】:2022-10-20 20:10:05
【问题描述】:
我有一个用 Electron 构建的软件应用程序,每秒钟都有一个 Ajax 调用。 一切似乎都正常,但是服务器被砸坏了,我们正在经历严重的超载和缓慢。这些网站会很快,然后很慢,然后突然又很快,或者有时会继续旋转。我们有 8 个用户使用该应用程序,每秒产生 80 个查询。
这是我的cnf文件
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_allowed_packet = 64M
max_user_connections = 100
max_delayed_threads = 0
tmpdir = /tmp
wait_timeout = 300
read_buffer_size = 2M
read_rnd_buffer_size = 4M
myisam-recover-options = DEFAULT
myisam_sort_buffer_size = 128M
innodb_buffer_pool_size = 128M
innodb_log_buffer_size = 32M
innodb_data_home_dir = /var/lib/mysql/
innodb_file_per_table = 1
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_file_size = 16M
query_cache_type = 0
query_cache_size = 0
tmp_table_size = 64M
max_heap_table_size = 64M
table_definition_cache = 8192
table_open_cache = 16384
log-error = /var/log/mysql.error.log
log-warnings = 3
[mysql]
no-auto-rehash
default-character-set = utf8mb4
[mysqldump]
quick
max_allowed_packet = 32M
[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
!include /etc/my.cnf.d/hwconf.conf
我不确定并且不知道我可以做些什么来避免这种情况,我与主机交谈,他们说有时会有一些睡眠查询,那里没有太多帮助。
【问题讨论】:
-
怎么知道网站慢是mysql造成的?您是否考虑过用另一种解决方案替换轮询比秒,或者至少减少间隔?从编程的角度来看,您对我们有什么期望(请记住,这是 SO,而不是 DBA Q/A 网站!)?
-
8 个用户每秒使用 ajax 请求对每个用户进行 8 次查询,而不是 80 次。 Quick Mafs
-
额外的数据库信息请求,请。 RAM 大小、# 核心、MySQL 主机服务器上的任何 SSD 或 NVME 设备?在 justpaste.it 上发布 TEXT 数据并分享链接。从您的 SSH 登录根目录中,文本结果为:A) SELECT COUNT(*) FROM information_schema.tables; B) 显示全球状态;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序; E) 状态;不显示状态,只是状态; G) 显示 ENGINE INNODB 状态; H) SELECT name, count FROM information_schema.innodb_metrics ORDER BY name;为服务器工作负载调优分析提供建议。
-
在 justpaste.it 上发布 TEXT 数据并共享链接。其他非常有用的操作系统信息包括 - 请,htop 1st page,如果可用,TERMINATE,top -b -n 1 用于大多数活动的应用程序,top -b -n 1 -H 有关您的 mysql 线程内存和 cpu 使用情况的详细信息,ulimit - a 用于限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,df -h 用于已用 - 按设备的可用空间,df -i 用于按设备的 inode 信息,cat /proc/meminfo 包括 VMallocUused,用于服务器工作负载调优分析,提供性能改进建议。
-
您每秒运行 80 次哪些查询?一个简单的查询是没有问题的。多个复杂的查询会使服务器陷入瘫痪。
标签: mysql