每天在高峰时段,我的服务器都会变得很慢或宕机。我们的托管服务提供商坚持要求我们升级服务器,但我认为存在一些性能调优问题。
添加下面的进程信息、服务器配置和my.cnf参数。
处理信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
60848 mysql 20 0 34.8g 23g 6416 S 2196.2 82.1 16027:29 mysqld
专用服务器配置
Size: 'Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz', 2600MHz, 6 Core, Sockets: 2
Image: CentOS 6 64-bit with cPanel Fully-managed
CPU: Intel Dual Xeon E5-2620 v3
Speed: 2600MHz
RAM: 32067MB
CPUs: 2 Physical CPUs
Cores: 12
Total Cores RAID: Level 10
Disks: 4
Size: 917GB
Type: SSD
MySQL 配置
[mysqld]
slow_query_log = 1
#long_query_time = 2
long_query_time = 2
slow_query_log_file = /var/lib/mysql/vps-slow.log
performance-schema=0
max_connections = 250
max_allowed_packet=128M
#skip-external-locking
key_buffer_size = 256M
open_files_limit = 50000
table_open_cache = 15000
sort_buffer_size = 6M
join_buffer_size = 6M
read_buffer_size = 1M
read_rnd_buffer_size = 15M
myisam_sort_buffer_size = 64M
query_cache_type=1
query_cache_limit=2M
query_cache_size=128M
max_heap_table_size = 96M
tmp_table_size = 96M
#low_priority_updates=1
thread_cache_size = 32
wait_timeout = 300
connect_timeout=15
interactive_timeout = 800
innodb_buffer_pool_size=4096M
innodb_buffer_pool_instances = 4
group_concat_max_len=1000000
default-storage-engine=MyISAM
innodb_file_per_table=1
[mysqldump]
quick
如果配置有任何问题,请帮助我?
或者
我真的需要升级服务器吗?
PS:在同一台服务器上托管 Web 应用程序。还启用了 WHM 以方便管理。
答案1
建议您的 my.cnf-ini [mysqld] 部分
innodb_buffer_pool_size=4G # from 4096M - instances will be evenly divisible
#sort_buffer_size=6M lead with # for default
#read_buffer_size=1M lead with # for default
#read_rnd_buffer_size=15M lead with # for default
#join_buffer_size=6M lead with # for default
query_cache_min_res_unit=512 # from 4096 default to reduce QC RAM required per SELECT
请使用 MySQLCalculator.com 花 2 分钟来识别您的每个连接 X 值是否远高于获得更可预测的 MySQL 实例所需的值。
另外,如果您可以从 A) ulimit -a 发布有关您的 Linux 操作系统限制的完整报告,以及从 B) Mysqltuner.com 发布完整报告;
我们将获得有用的信息,包括您正在运行的 MySQL 版本、按 ENGINE 表数据空间和表数,所有有用的信息。谢谢