数据库服务器,服务器环境和观察中的费率非常高,如下所示:
服务器环境:
操作系统版本 - 红帽企业Linux服务器版本6.6(圣地亚哥)/ 系统信息 - Linux database.esewa.com.np 2.6.32-504.1.3.el6.x86_64#1 SMP Fri Oct 31 11:37:10 EDT 2014 x86_64 x86_64 x86_64 GNU / Linux RAM - 32G(22G = MYSQL,2GB = MEMCACHE,其余为OS) HW - 2Sockets - Intel(R)Xeon(R)CPU X5650 @ 2.67GHz 存储 - 磁盘托架中具有RAID 10的10K RPM磁盘
对MEMORY PAGE的观察
假设PAGE IN值应该为0或低并且命中大于25表示非常高或存储压力并且可能是交换的前兆。我已经在服务器中阻止了非常高的页面(最大180),但没有看到任何内存进程交换队列。其他指标也很正常(avg-cpu:%user(10.47)%nice(0.00)%system(0.63)%iowait(5.26)%steal(0.00)%idle(83.64))
问题:
在这种背景下,假设是否合理?
我们是否为应用程序分配了更多内存(即22G-MYSQL和2GB MEMCACHE)?
任何人都看到MYSQL和MEMCACHE的组合在速率非常高的页面(Max-180)上存在问题?
大页面可以帮助解决这个问题吗?
在这种情况下,大多数情况下接近设备利用率(iostat%util)的行为接近99%是可以接受的吗?
如果有人为上述问题提供建设性和批判性的答案,我感激不尽。提前谢谢。
答案 0 :(得分:2)
大页面可以帮助解决这个问题吗?
是的,建议对数据库进行性能调整。这也是link - Enabling Large Page Support
的推荐在这种背景下,假设是否合理?
您对网页内容的假设不正确。当内核正在进行I / O时,页面输入和页面输出会很高,因为数据是从磁盘读取并移动到主存储器中,相对而言,页面正在交换,导致高读取和写入I / O操作。
参考man sar
:
“
pgpgin / S
系统每秒从磁盘分页的总千字节数。
pgpgout / S
系统每秒分页到磁盘的总千字节数。
“
在这种情况下,大多数情况下接近设备利用率(iostat%util)的行为接近99%是可以接受的吗?
您可能还需要查看mysql tuner以配置读取/键/排序缓冲区大小,并将系统调整为数据库的使用期限I / O调度程序。使用tuned-adm
或手动echo 'deadline' > /sys/block/sda/queue/scheduler
或在elevator=deadline
中设置grub.conf
即可保持此状态。
此外,查看下面的内核可调参数并在/etc/sysctl.conf
或使用sysctl
设置它们以最大限度地减少不必要的页面交换,保持脏页率低,在5到10%之间,确定多长时间脏页可以在过期之前保存在缓存中。注意:必须小心处理这些值,进行增量更改并测试服务器上的负载。
vm.swappiness
vm.dirty_background_ratio
vm.dirty_ratio
vm.dirty_expire_centisecs