免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1783 | 回复: 2
打印 上一主题 下一主题

【讨论中】mysql 查询性能波动问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-11 17:13 |只看该作者 |倒序浏览
本帖最后由 cenalulu 于 2012-10-12 11:37 编辑

mysql版本5.5.16
数据大概1G
引擎:innodb
OS:centos-5.4
文件系统:ext3
双核系统

innodb_buffer_pool 2G

基本山把数据都载入到内存中了,用4条查询语句不断的轮训查询不同的表,每个表大概数据100万条。

一般查询速度都在几毫秒,但周期性的查询时间会上升到1百或几百毫秒,但持续时间较短,一般是3到4条这样的现象。

innodb的参数,按照网上的优化参数配置都做了设置。

+---------------------------------+------------------------+
| innodb_adaptive_flushing        | ON                     |
| innodb_adaptive_hash_index      | ON                     |
| innodb_additional_mem_pool_size | 16777216               |
| innodb_autoextend_increment     | 8                      |
| innodb_autoinc_lock_mode        | 1                      |
| innodb_buffer_pool_instances    | 1                      |
| innodb_buffer_pool_size         | 2147483648             |
| innodb_change_buffering         | all                    |
| innodb_checksums                | ON                     |
| innodb_commit_concurrency       | 0                      |
| innodb_concurrency_tickets      | 500                    |
| innodb_data_file_path           | ibdata1:10M:autoextend |
| innodb_data_home_dir            |                        |
| innodb_doublewrite              | ON                     |
| innodb_fast_shutdown            | 1                      |
| innodb_file_format              | Antelope               |
| innodb_file_format_check        | ON                     |
| innodb_file_format_max          | Antelope               |
| innodb_file_per_table           | OFF                    |
| innodb_flush_log_at_trx_commit  | 1                      |
| innodb_flush_method             | O_DIRECT               |
| innodb_force_recovery           | 0                      |
| innodb_io_capacity              | 200                    |
| innodb_large_prefix             | OFF                    |
| innodb_lock_wait_timeout        | 50                     |
| innodb_locks_unsafe_for_binlog  | OFF                    |
| innodb_log_buffer_size          | 8388608                |
| innodb_log_file_size            | 5242880                |
| innodb_log_files_in_group       | 2                      |
| innodb_log_group_home_dir       | ./                     |
| innodb_max_dirty_pages_pct      | 75                     |
| innodb_max_purge_lag            | 0                      |
| innodb_mirrored_log_groups      | 1                      |
| innodb_old_blocks_pct           | 37                     |
| innodb_old_blocks_time          | 0                      |
| innodb_open_files               | 800                    |
| innodb_purge_batch_size         | 20                     |
| innodb_purge_threads            | 0                      |
| innodb_random_read_ahead        | OFF                    |
| innodb_read_ahead_threshold     | 56                     |
| innodb_read_io_threads          | 4                      |
| innodb_replication_delay        | 0                      |
| innodb_rollback_on_timeout      | OFF                    |
| innodb_rollback_segments        | 128                    |
| innodb_spin_wait_delay          | 6                      |
| innodb_stats_method             | nulls_equal            |
| innodb_stats_on_metadata        | ON                     |
| innodb_stats_sample_pages       | 8                      |
| innodb_strict_mode              | OFF                    |
| innodb_support_xa               | ON                     |
| innodb_sync_spin_loops          | 30                     |
| innodb_table_locks              | ON                     |
| innodb_thread_concurrency       | 4                      |
| innodb_thread_sleep_delay       | 10000                  |
| innodb_use_native_aio           | OFF                    |
| innodb_use_sys_malloc           | ON                     |
| innodb_version                  | 1.1.8                  |
| innodb_write_io_threads         


但还是有周期性的波动,百思不得其解,希望各位高手们能指点一下,多谢!

论坛徽章:
0
2 [报告]
发表于 2012-10-11 22:47 |只看该作者
从参数来看innodb_log_file_size 这个只有5M,相对比较少。其他的相关信息太少。请提供对应的语句,表结构数据。再查询的时候时候还有其他update等变更再做吗?有点怀疑时候redo log file不够了,导致数据库等待。
你检查一下mysql 的status,看一下
Innodb_log_waits

The number of times that the log buffer was too small and a wait was required for it to be flushed before continuing.
看看当时有没有增加?

论坛徽章:
0
3 [报告]
发表于 2012-10-12 09:04 |只看该作者
好,多谢,我先查查看!
另外,还有个现象:
我的数据库服务器是独享的,没有数据更新!
我起初是怀疑系统某个服务周期性运行把mysql拖慢了, 但观察cpu负载,发现在查询延迟严重时CPU的负载有一些增加,但不太大。
是不是mysql后台的某个线程在周期性的 做某个动作,使得此时的查询性能下降?  
我记录了这个时间,每次波动的时间不是特别规律,大概是10秒左右。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP