在数据库服务器、服务器环境和观察中获取的比率非常高的页面如下所示:
服务器环境:
操作系统发布版-红帽企业Linux服务器第6.6版(圣地亚哥)/系统信息- Linux database.esewa.com.np 2.6.32-504.1.3.el6.x86_64 #1 SMP Fri 10月31日11:37:10 x86_64 GNU/Linux 32G(22G=MYSQL、2GB=MEMCACHE和rest给操作系统)HW-2Sockes-Intel(注册商标)Xeon(注册商标) CPU X5650 @ 2.67GHz存储-10KRPM磁盘( RAID 10磁盘)
对中内存页的观察
假设页面的值应该是0或低,并且命中大于25,则表示处于压力下的内存非常高,并且可能是交换的前兆。我在服务器中看到了非常高的页面(最高-180),但是没有看到任何内存进程交换队列。还注意到大部分是99%的IO利用率,尽管其他指标是正常的(avg:%用户(10.47%)%好人(0.00)%系统(0.63) %iowait(5.26) %偷(0.00)%空闲(83.64))
问题:
在这种情况下,这种假设是否合理?
我们是否为应用程序分配了更多的内存(即22G-MYSQL和2GB的MEMCACHE)?
有人认为MYSQL和MEMCACHE结合在一起的问题在很高的页面(最高-180)中吗?
大页能帮助解决这个问题吗?
在这种情况下,击中设备利用率(iostat的使用率%)接近99%的行为在大多数情况下是可以接受的?
如果有人能对上述问题提供建设性和批判性的回答,我将不胜感激。提前谢谢。
发布于 2015-01-01 15:59:56
大页能帮助解决这个问题吗?
是的,推荐使用hugepages对数据库进行性能优化。这也是从这个链接-启用大页面支持推荐的
在这种情况下,这种假设是否合理?
你关于页面的假设是不正确的。当内核执行I/O时,分页和分页量会很高,因为数据是从磁盘读取并移动到主内存中的,vis- as会导致大量的读和写I/O操作。
参考man sar
“
pgpgin/s
每秒从磁盘呼入系统的总字节数。
pgpgout/s
系统每秒呼出到磁盘的千字节总数。
“
在这种情况下,击打设备利用率(iostat的使用率%)接近99%的行为在大多数情况下是可以接受的?
您还可能希望查看用于配置读/键/排序缓冲区大小的mysql调谐器,并将系统调到数据库的使用截止日期I/O调度器。使用tuned-adm或手动echo 'deadline' > /sys/block/sda/queue/scheduler或在grub.conf中设置elevator=deadline可使此持久性。
此外,查看下面的内核可调性,并在/etc/sysctl.conf中设置它们,或者使用sysctl来最小化不必要的页面交换,将脏页比率保持在5%到10%之间,以确定在过期之前可以在缓存中保存多长时间。注意:必须小心处理这些值,进行增量更改,并测试服务器上的负载。
vm.swappiness
vm.dirty_background_ratio
vm.dirty_ratio
vm.dirty_expire_centisecs https://stackoverflow.com/questions/27646266
复制相似问题