我正在努力提高MySQL服务器的性能。 我正在寻找一些东西来衡量和监测MySQL的性能(每秒查询),以便我可以衡量我所做的任何改进。 他们的任何易于使用的开源软件,这样做? 谢谢。
以下是对我遇到的最奇怪的networking问题的描述。 故事 我正在和一位报告无法检查他们的电子邮件的客户合作,从今天上午开始。 两个星期前,他们完成了一次重大的升级,取而代之的是他们所有的电脑,以及一个新的SBS服务器添加到Windows域。 客户端使用Windows 7上的Outlook 2010通过POP3获取电子邮件,但邮件未收到。 发送/接收进度窗口指示下载停止在大约1%完成。 我尝试使用telnet客户端连接到POP3服务器,并观察到类似的行为。 在发出命令RETR 1我看到一小块数据(大约1K)通过,间隔越来越长。 在大量的数据之间,暂停时间似乎增加了一倍 – 我观察到持续了1,3,7,14和28秒的暂停。 那之后我就不再计算了。 通过在同一个域中的terminal服务器(Svr 2008标准)上运行telnet执行相同的POP3消息下载testing,结果相同。 然后上传一个小的PHP脚本,它将返回一个任意长度的页面到互联网上的服务器,并尝试从局域网上的terminal服务器访问它。 我testing了从1K到1MB的各种尺寸,没有观察到摊位。 HTTP似乎不受影响。 最后,我将我的个人笔记本电脑(不是域成员)插入networking,并再次尝试POP3testing – 整个邮件立即下载。 更新(2011-03-10) 我使用Wireshark来获取今天POP3对话的清晰数据包捕获。 初始会话(USER,PASS,LIST)按预期工作,服务器立即响应。 (LIST的结果适合于一个数据包。)RETR命令发出后,消息开始stream式传输,延迟开始。 我之前的估计是稍微偏离的,延迟实际上是预期的持续时间:1,2,4,8,16秒等。客户端在收到每个数据包的200毫秒内立即发送ACKS。 此外,我们试图直接将受影响的工作站之一连接到互联网,并且能够全速下载邮件。 此时,我强烈怀疑路由器(Cisco 1711)出现故障,但对IOS进行进一步的诊断我还不够了解。 我知道的 POP3服务器对于networking外的客户端正常工作。 电缆调制解调器正在提供全速连接。 路由器可能不会发生故障,因为当我将自己的机器连接到networking时,它工作得很好。 L2交换机以千兆速度传送LANstream量。 只有新安装的电脑出现问题。 安装完两个星期后,新电脑上出现了这个问题。 我不知道 究竟是什么原因导致了这种拖延?
在MySQL 5.1(.57-1.dotdeb)上,我有一个〜2.0Gb的数据库,平均每秒约350个请求。 如果我不激活二进制日志,所有运行正常。 CPU使用率不错(〜1 CPU内核的15%)。 如果我激活二进制日志,所有突然HYPER慢。 请求平均下降到约90个请求/秒,每个请求需要+/- 4秒才能完成。 你必须知道: MySQL正确调整,tuning-primer.sh在“正常”时间内给出好的结果 硬件是Bi-Xeon E5620(Westmere世代),带有24个GO RAM InnoDB允许12个RAM的GO 运行Debian 6 64bits 当二进制日志被激活时: MySQL的CPU使用率很低。 约1或2%的1核心。 “顶”的I / O没有太多的百分之五,约5-7%。 内存使用看起来不错。 我已经testing了1个GO,而不是12个GO,没有改变。 查询是很长的执行,然后php5-fpm创build了很多新的进程来处理stream量。 在正常情况下,我有大约15位PHP-FPM工作者,如果二进制日志被激活,这个数字可以达到150-200(最大值)。 没有必要确定所有的系统在这个时候都被冻结了。 🙂 这是my.cnf: [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port […]
如果我在Amazon EC2实例(使用他们的AWS Free Usage Tier程序)上抛出我的MySQL / PHP应用程序,并将其与CloudFlare(当然是免费的计划)相结合,那么在性能开始遭受损失之前,大概每天可以处理多less个每日访问者? 只是寻找一个粗略的估计或教育猜测 – 我知道这个设置可能不是理想的,但我仍然非常好奇。 提前致谢
我在CentOS 6 x86_64上运行带有OpenSSL的nginx 1.0.0。 以下是openssl基准testing的结果。 sh# openssl speed aes-256-cbc OpenSSL 1.0.0-fips 29 Mar 2010 built on: Sat Jun 25 04:58:15 BST 2011 options:bn(64,64) md2(int) rc4(1x,char) des(idx,cisc,16,int) aes(partial) blowfish(idx) compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,–noexecstack -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 […]
我有一个在RHEL 5.3上运行的Apache httpd服务器。 我正在使用此服务器为另一个httpd实例上运行的网站提供静态内容(图像)。 在公共networking目录中有几个图像,就是这样。 启动后的一段时间,服务器向浏览器提供图片的速度非常缓慢,并且在试图服务于16×16 png时经常挂起几分钟。 debugging这个问题最好的方法是什么? 我已经在机器上运行了顶部 ,以validation是否有足够的可用内存,并提供CPU。 机器不会进入交换,而且当通过浏览器请求图像时,httpd进程只占用CPU和内存几秒钟。 但是图像只有几分钟后才能返回。 httpd进程的重启解决了这个问题,图像加载很快。 这似乎是可能的最简单的Web服务器设置。 这个问题可能是什么? 谢谢 更新 :httpd.conf设置: Timeout 10 KeepAlive On MaxKeepAliveRequests 150 KeepAliveTimeout 15 ServerLimit 3 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule>
我开始尝试做一些简单的性能testing。 “哪些磁盘更快,以及多less东西。 我不需要太高的精度,我只是想要一个粗略的想法。 它变成一个奇怪的进入如何工作的内部事件。 有趣的,实际上,但有点奇怪。 在我进一步讨论之前,我要说的是,本文中的所有内容都是在Arch Linux系统上运行的,运行3.0内核,从MyBook Essential USB3机箱中移除Western Digital WD30EZRX 3TB SATA磁盘驱动器(这些机箱可以做坏事您的数据),并安装在Sans Digital单盘USB3机箱中,通过Buffalo USB3 PCIe单通道卡连接。 驱动器是该USB卡上的唯一设备,在testing期间系统处于空闲状态。 我写了一个性能testing程序,一个简单的C程序来打开一个文件,写入四个GiB的数据,fsync(),然后退出。 我在一个空的全盘ext4文件系统上运行了9次testing(任意一个数字,因为我想要单个数字,但是忘了从零开始),每次运行58-59秒,大约73 MB /秒。 不是世界上最快的磁盘,但结果是相当一致的。 由于我不记得的原因,没有预料到任何麻烦,我在几个小时后回来做了完全相同的testing,拔掉磁盘后再testing另一个磁盘,将原始磁盘重新插入,然后重新执行mkfs。 令我惊讶的是,我得到了非常不同的结果。 这一次,我在51-52秒(83 MB /秒)的范围内得到了结果,2秒接近48秒。 几个小时后,在做了一些研究之后(包括在这里问一个关于如何找出文件使用哪个磁盘块的问题),我在同一个磁盘上运行了另一个testing,而不用重新初始化。 我只是在前一个testing的同一目录(文件系统的根目录)中创build了新的文件。 这一次,我在44-45秒(96 MB /秒)的范围内得到了结果。 后来,我又跑了三个testing(实际上改进了我的testing程序),再次把这些文件放在现有的文件旁边,并获得了44秒,45秒和50秒的性能。 这三组运行是完全相邻的。 请记住,我还没有谈论个人跑步。 我跑了9次testing程序,所有的结果都是44秒,还有9次,都是45秒的结果,还有9次,都是50秒的结果。 这些差别很大,而且很奇怪。 我使用debugfs来检查文件正在使用哪些块,并没有什么“有趣的”在那里。 每个文件似乎从磁盘开始依次得到下一个可用块。 我能想到的唯一可能的解释是,如果磁盘电路以某种方式从磁盘的不同部分分配块并将它们呈现给主机为连续的。 对于我所看到的结果,它将不得不注意到我的testing运行之间的延迟,并将其作为切换到磁盘的不同部分进行分配的机会。 坦率地说,这听起来有点像我,但我没有很多其他的想法。 任何人都可以阐明这一点? 为什么我会得到这样的局部一致而全局variables的结果呢?
好吧 – 破败: 初始安装 推出了一个新的戴尔机架式服务器,运行Server 2008 Standard x64。 所有Windows更新,添加文件服务angular色; 一切都没有问题完成。 安装FS使用2003年和索引选项,而不是Windowssearch服务。 安装了Symantec Endpoint Protection 11.0.6000.645(仅限AV – 无NTP或电子邮件或任何其他内容)。 Robocopied从服务器(运行2003年)的所有现有共享,并validation他们在2008年的钻机(没有问题)。 释放并closures2003服务器; 将2008服务器重命名为2003服务器的前一个networking名称。 迁移后不久,用户抱怨史诗缓慢。 我将2008服务器更改为使用WSS而不是2003 / indexing,之后重新启动。 仍然没有喜乐。 我一整周都在努力,在互联网上尝试不同的select。 我试过的东西(无济于事) 在服务器上禁用SMB 2.0,使其处于活动状态。 禁用服务器上的SMB 1.0,使其处于活动状态。 禁用服务器上的SMB,使两个版本都没有激活(只有NetBIOS,我猜?)。 将SEP更新到最新(11.0.7000.975)。 完全卸载SEP。 启用/禁用IPv6绑定。 在NIC上禁用TCP卸载(包括IPv4和IPv6) 在捕猎解决scheme的时候,我发现了很多东西。 我们有很多客户端,主要是XP,一些Win7引擎(所有的标准版本,很确定都是x86)。 我可以从我的Win7(x86)笔记本电脑(我的标准工作机器)和我的XP VM x86testing机器(在ESX服务器上)打开一切,没有问题。 唯一的区别,我可以find(这似乎是重要的)是我的东西都在一个子网,而其他客户机在另一个(xx1.x与xx2.x)。 我不明白缓慢的来源。 当然,2003服务器没有这个问题,或者用户已经投诉了。 任何一个我信任的社区的想法或方向真正解决问题将是真棒。 而且 – 如果实际上有一个线程可以解决这个问题,我会提前道歉。 我只是无法find它(但不是因为缺乏尝试)。 谢谢,提前,所有。
我知道现代虚拟化对CPU的影响最小。 I / O呢? GUI工作呢? 我特别要求VMware Workstation(Windows主机)和VMWare ESXi; Linux的客人。 编辑:我想要实际的数字。 例如:在VMware Workstation上,CPU应该大约为95%,而GUI只能工作20%。 BTW:ESXi和Workstation是否使用相同的底层虚拟化引擎? 编辑:通过GUI,我的意思是典型的桌面GUI:浏览器,IDE,文字处理器。
在FreeBSD 8.2发行版中,我已经在vinum中尝试了不同的条带卷。 我有目前的硬件(英特尔i5处理器,足够的MB和8GB的RAM)。 我的testing设置由2个或4个磁盘卷组成,每个磁盘为2TB,“绿色”行希捷和Western Digital; 即消费者磁盘在5400RPM。 这些在我的服务器,而我的桌面连接到(通过千兆局域网)有一个快速的SSD。 我的问题是,当我访问我的单一“黑色”西部数字2TB时,比我访问我的vinum卷时,我的Gbit局域网的性能(即读/写速度)更好。 黑色WD单碟:读=写= 90-105 MB /秒 vinum卷,所有设置:读取= 80 MB / s; 写= 50 MB / s 我试过的vinumconfiguration是: testing1: drive a device /dev/ad32 drive b device /dev/ad34 drive c device /dev/ad26 drive d device /dev/ad28 volume test1 plex org striped 512k sd length 2048m drive a sd length 2048m drive […]