(转)针对MySQL的Linux性能调优技巧[翻译]

标签: mysql linux 性能调优 | 发表时间:2014-02-25 13:08 | 作者:
出处:http://jackyrong.iteye.com
http://mdba.cn/?p=244
原文作者: Alexander Rubin,Percona 工程师
原文连接:Linux performance tuning tips for MySQL
为了方面阅读,我没依照原文按行逐句的进行翻译。另外,我自己的扩充了一下基础知识点,很多知识点也是我第一次去学习,翻阅了一些资料。
原文中对Linux系统参数的优化主要分为文件系统、内存与swap、CPU三方面。
文件系统(Filesystem)
1)使用ext4或者xfs文件系统,mount选项使用noatime选项。
系统默认记录文件创建、修改和上一次访问等信息,记录上last access time需要一定的开销。使用noatime选项,不记录last access time,可以提升系统的性能。
参考:The atime and noatime attribute
2)IO调度算法选择NOOP或则Deadline。
echo deadline > /sys/block/sda/queue/scheduler
add "elevator=deadline" to grub.conf
内存优化(Memory&Swap)
优先使用内存
尽可能使用内存,而少使用swap。只有当内存不够用的时候,系统才会使用swap。
echo 0 > /proc/sys/vm/swappiness
add "vm.swappiness = 0" to /etc/sysctl.conf
屏蔽NUMA特性
设置numactl的interleave参数值为all,即是允许所有的处理器可以交叉访问所有的内存,一致性内存访问(UMA, Uniform Memory Access)方式。
numactl --interleave=all
Node Interleaving: Enable or Disable?详细讲述了交叉访问模式的作用。
The MySQL “swap insanity” problem and the effects of the NUMA architecture深度分析MySQL对于swap的使用和NUMA架构对MySQL的性能影响。
NUMA(Non-Uniform Memory Access)非一致性内存访问架构,是一种多核处理器的内存设计方案。针对每个处理器,NUMA会把全局的存储器分为本地内存(local memory)和非本地内存(no-local memory)。处理器访问本地内存速度比非本地内存的速度快很多。
CPU优化
检查CPU是否开启了节能选项,ondemand表示处于节能状态。[Centos 5.x]
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
ondemand

ps ax | grep kndemand
2778 ? S< 0:00 [kondemand/0]
2779 ? S< 0:00 [kondemand/1]
2780 ? S< 0:00 [kondemand/2]
2781 ? S< 0:00 [kondemand/3]
2782 ? S< 0:00 [kondemand/4]
2783 ? S< 0:00 [kondemand/5]
2784 ? S< 0:00 [kondemand/6]
2785 ? S< 0:00 [kondemand/7]
上面的的进程状态显示8个cores均开启了节能模式。
另外,通过/proc/cpuinfo中cpu的当前的时钟频率与“model name”中数字是否一致可以得知cpu是否处于节能状态。如下,“model name”显示的2.13GHz,而“cpu Mhz”显示的1867.000MHz,cpu没有达到最大的时钟频率,处于节能状态。
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
stepping : 5
cpu MHz : 1867.000
cache size : 4096 KB
Centos6.x 编译内核的时候没有加上cpufreq  performance模块,因此不能使用”cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor”检查cpu是否处于节能工作状态。
也可以使用
watch grep \"cpu MHz\" /proc/cpuinfo
检查cpu的工作频率。

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql linux 性能调优] 推荐:

(转)针对MySQL的Linux性能调优技巧[翻译]

- - jackyrong
原文作者: Alexander Rubin,Percona 工程师. 原文连接:Linux performance tuning tips for MySQL. 为了方面阅读,我没依照原文按行逐句的进行翻译. 另外,我自己的扩充了一下基础知识点,很多知识点也是我第一次去学习,翻阅了一些资料. 原文中对Linux系统参数的优化主要分为文件系统、内存与swap、CPU三方面.

Linux ulimit 性能调优

- - CSDN博客编程语言推荐文章
ulimit 用于shell启动进程所占用的资源,是shell内建命令. 功能说明: 控制shell程序的资源. 补充说明: ulimit为shell内建指令,可用来控制shell执行程序的资源. 语法格式:  ulimit  [-acdfHlmnpsStvw]  [size]. -a   显示目前资源限制的设定.

mysql 性能调优(转)

- - 数据库 - ITeye博客
转自:http://suhuanzheng7784877.iteye.com/blog/2047209. Mysql高性能学习笔记-01. Mysql整体的架构模块如下图所示. 模块1:连接客户端,这个一般是指mysql基于mysql通讯协议的驱动程序. 比如mysql的Java的JDBC驱动程序——mysql-connector-java-5.1.26-bin.jar.

mysql性能调优--总括

- - 数据库 - ITeye博客
每张表数据最好不要超过2000W 条数据. 超过之后分表存储,分库存储. 一个实例oracle一时打开一个数据库. 一个实例mysql一时打开多个数据库. 按对数据调优影响从高到低依次为:. mysql服务优化,内存磁盘的使用. 插入,修改,删除数据的时候,索引是最大的瓶颈. 所以如果要导入数据的时候就删除索引.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

2012DTCC – MySQL性能调优最佳实践

- - Sky.Jian 朝阳的天空
上周受邀于 IT168,在 2012年度的 DTCC 大会上做了一个小的主题分享,内容主要是最近几年在 MySQL 数据库的性能调优过程中积累的一点点经验总结,希望能对大家有用. 其中部分内容在之前的 第二届华东地区数据库大会 上已经有过分享,这次是在当时分享内容的基础上增加了硬件和系统层面的内容,同时根据听众反馈对原有内容进行了部分优化改进.

Linux常用性能调优工具索引

- - 系统技术非业余研究
原创文章,转载请注明: 转载自 系统技术非业余研究. Linux常用性能调优工具索引. 前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到Linux常用性能调优工具, 见下图:. 其中提到了的工具,大部分我之前有推荐过或者在实践的案例里面使用过,这里方便大家索引下:.

Mysql Tomcat C3p0 系统性能调优个人总结

- - CSDN博客数据库推荐文章
应用逻辑 就是用c3p0 到数据库查询数据并http返回Json数据. 1 调优前的最初的测试结果   JMeter test result. 这个数据是从程序的log 中打印出的 数据库select语句 中得出的结果(正确与否后面会有讨论). 2 经过IOD系统打印 SQL query 的执行时间 和 tomcat 每个request 的 响应时间,找出 系统瓶颈 是因为一个 select语句 使用了 in:.

Linux 安装 MySQL / MySQL 主从备份

- - BlogJava-首页技术区
假定所有安装包均在 /share目录,安装目录为 /opt !!. ========================= 安装 MySQL =========================. $ vi /opt/mysql/my.cnf (参考下面配置). $ vi /etc/rc.d/init.d/mysql (参考下面配置).

linux 下mysql自启动

- - 数据库 - ITeye博客
如果你都是按照默认配置安装的那么只要按照如下步骤就可以了. 1、cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql   将服务文件拷贝到init.d下,并重命名为mysql. 2、chmod +x /etc/init.d/mysql    赋予可执行权限.