这个问题也可以在StackOverflow上被问到,但我会先在这里尝试… 我们的数据库中的INSERT和UPDATE语句的性能似乎正在下降,导致我们的Web应用程序性能不佳。 表是InnoDB,应用程序使用事务。 我可以做些简单的调整来加快速度吗? 我想我们可能会看到一些locking问题,我怎么知道?
我想从一个日志文件中计算每秒SQL查询的数量,我想通过从grepinputstdout到某些命令来实时执行它。 (我正在做一些性能testing) 我可以自己写,但肯定会存在。 我看着wc,但没有看到允许这个选项。 我也可以使用它通过从访问日志中输出一个尾部来每秒钟计数请求。
我正在评估GlusterFS和Ceph,似乎Gluster是基于FUSE的,这意味着它可能不如Ceph那么快。 但看起来像Gluster有一个非常友好的控制面板,并易于使用。 几天前Ceph被合并到了linux内核中,这表明它有更多的潜力,可能是未来的一个不错的select。 我想知道哪个(甚至两个?)是生产用途的更好的select? 如果你能分享你的实际经验,那将是很好的
我收到了一个Redis用户的报告,我不知道该怎么回答,因为我不是Linux领域的专家和调度员,但是我们(作为Redis项目)需要特别指出这种问题在未来,与Redis Cluster一样,我们将有许多Redis实例同时在一个盒子中运行。 所以我在这里寻求帮助。 问题: 内核:“Linux redis1 2.6.32-305-ec2#9-Ubuntu SMP Thu Apr 15 08:05:38 UTC 2010 x86_64 GNU / Linux” 大量的可用RAM,没有其他进程执行重要的I / O。 重要的是 ,在EC2大实例上运行,而不是真正的服务器。 我从来没有在非虚拟化的环境中看到类似的东西。 EC2实例是: “高内存超大实例17.1 GB内存,6.5 ECU(2个虚拟核心,每个3.25 EC2计算单元),420 GB本地实例存储,64位平台” 。 基本上,一旦你重新启动一个大的Redis实例,系统会变得很慢,你不能再在shell上input。 当Redis加载实例时,它使用100%的CPU(它尽可能快地加载数据)并顺序读取dump.rdb文件。 加载是CPU限制,而不是I / O限制,I / O不是特别高。 为什么地球上有两个CPU和大量RAM的盒子,没有交换磁盘上的东西,基本上应该停止工作这个工作负载? 我有一个印象,这与它是一个EC2实例有很大关系,所以与我使用的虚拟化技术有关,因为我一直加载Redis 24 GB数据集 ,没有任何问题(即使Redis的其他实例高负荷运转)。 感谢任何提示! 萨尔瓦多 编辑 :添加一些我从twitter收到的反馈: 从@ezmobius:@antirez首先要做的是从/ mnt或本地短暂的驱动器试试看,如果它的EBS flakiness,第二是要确保它不是“第一次写惩罚”(谷歌它),如果是你需要首先在磁盘的dd 0。 从@dvirsky:@antirez我正在这样ec2节点上运行许多redis实例。 我注意到bgsave有一些放缓,但不是这种现象。
我错误地认为,我的内部ABtesting意味着我的服务器可以处理1k并发@ 3k点击每秒。 目前我的理论是networking是瓶颈。 服务器无法足够快地发送足够的数据。 来自blitz.io的1k并发性外部testing显示我的命中上限为180,页面花费的时间越来越长,因为服务器每秒只能返回180。 我已经从nginx提供了一个空白文件,并对其进行了修改:它以1:1的并发性进行扩展。 现在为了排除IO / memcached瓶颈(nginx通常从memcached中提取),我从文件系统提供了一个静态版本的caching页面。 结果与我原来的testing非常相似。 我被限制在大约180 RPS。 将HTML页面分成两半,使得RPS翻了一番,所以受到页面大小的限制。 如果我在本地服务器内部使用ApacheBench,那么在全页面和半页面上都能以高传输速率获得大约4k RPS的一致结果。 传输速率:收到62586.14 [千字节/秒] 如果我从外部服务器AB,我得到约180RPS – 与blitz.io结果相同。 我怎么知道这不是故意的节stream? 如果我从多个外部服务器进行基准testing,所有结果都变差,这导致我认为问题出在我的服务器出站stream量,而不是我的基准服务器/ blitz.io下载速度问题。 所以我回到我的结论,我的服务器无法发送足够快的数据。 我对吗? 还有其他方法来解释这些数据吗? 是解决scheme/优化设置多个服务器+负载均衡,每个可以每秒180次点击? 我很新的服务器优化,所以我会很感激任何确认解释这些数据。 出站stream量 以下是有关出站带宽的更多信息:networking图显示最大输出速率为16 Mb / s:每秒16兆比特。 听起来不怎么样。 由于有关节stream的build议,我研究了这个,发现林德有一个50mbps的帽子(我甚至没有接近击中,显然)。 我把它提高到100mbps。 由于linode限制了我的stream量,而我甚至没有打它,这是否意味着我的服务器确实应该能够输出高达100mbps,但受到其他一些内部瓶颈的限制? 我只是不明白这个规模的networking是如何工作的; 他们可以从硬盘上读取数据吗? networkingpipe道很大吗? 结论是 1:基于上述情况,我想我可以通过在多服务器端安装一个nginx负载平衡器,在每台服务器后面精确的180RPS的LB上增加180RPS。 2:如果林德有一个50 / 100mbit的限制,我根本没有打,我必须做一些事情来达到我的单个服务器设置的限制。 如果我可以在本地快速读取/传输数据,并且林德甚至有麻烦有一个50mbit / 100mbit上限,必须有一个内部的瓶颈,不能让我打这些帽子,我不知道如何检测。 正确? 我意识到这个问题现在是巨大而模糊的,但我不确定如何浓缩它。 任何input都赞赏我所做的任何结论。
我在两台机器之间有一个严重的MySQL 5.5复制性能问题,主要是基于语句复制的myISAM表。 二进制日志和mysql数据目录都位于相同的Fusion ioDrive上。 最近我们需要暂停复制大约是一个大问题。 3小时。 花了大约10个小时才赶上,没有其他的负担。 我怎样才能提高复制的性能? 机器B基本上处于空闲状态(很less,IO,2个内核最多可用16个,大量可用RAM),因为只有1个mySQL线程正在写入数据。 以下是我的一些想法: 切换到基于行的复制。 在testing中,这只会使性能提升10-20% 使用multithreading复制升级到mySQL 5.6。 我们可以很容易地将我们的数据分成不同的数据库,基准似乎表明这将有所帮助,但代码似乎并没有准备好。 一些configurationvariables将有助于加速复制 主要问题是 ,如果暂停3小时需要10小时才能完成,这意味着复制在10小时内写入13小时的数据,或者能够以130%的数据速度写入数据。在不久的将来,至less会在主机上写两次,所以迫切需要一种方法来提高复制性能。 机器A: 主 24GB内存 1.2TB Fusion ioDrive2 2个E5620 千兆互联 my.cnf : [mysqld] server-id=71 datadir=/data_fio/mysqldata socket=/var/lib/mysql/mysql.sock tmpdir=/data_fio/mysqltmp log-error = /data/logs/mysql/error.log log-slow-queries = /data/logs/mysql/stats03-slowquery.log long_query_time = 2 port=3306 log-bin=/data_fio/mysqlbinlog/mysql-bin.log binlog-format=STATEMENT replicate-ignore-db=mysql log-slave-updates = true # Performance Tuning max_allowed_packet=16M max_connections=500 table_open_cache […]
我正在通过挂载的共享将文件从Linux转移到Windows 7(该共享从Linux上的Windows挂载)..我正在从局域网内的旧机器复制大量数据(即接近TB) 。 我已经不幸了,我只有100MBit。 当然,我一味地使用rsync,但一天之后就已经想知道为什么它感觉如此缓慢。 启用进度表显示我的传输速率约为2MB / s。 所以我拿了一个合理的大文件(800MB)跟踪传输时间(1): cp : 05:33 scp (2): 06:33 rsync : 21:51 1)我在每次运行之间删除了这些文件 2)通过本地主机scp直接将同一台Linux机器上的共享; 完全没用,但提供了一个进度表 这些testing非常简单 (cp|scp|rsync) <source> <destination> 除了主机/端口的scp没有特殊的参数。 我甚至尝试了-W开关的rsync,但十分钟后取消。 在Lenny上运行的rsync是3.0.3。 为了能够随时中断复制过程并恢复到rsync,但现在我认为我需要重新考虑这个需求。 如何有这么大的差异? 更新/解决: 感谢rschuler,我能够解决这个问题:出于效率原因,使用rsync守护进程而不是smb安装。 上述DeltaCopy的作品,但必须注意一些事情 这是一个很好的GUI包装,但如果出了什么问题,知道如何解决它是很好的。 似乎我input了我的用户凭据,在哪个运行rsync服务,错误的第一次,但graphics用户界面不允许我设置一个新的。 我发现它是作为服务运行,并能够在那里设置适当的凭据 需要手动将端口添加到防火墙以允许连接 个人品味:确保股份是密码保护或如果没有,可能确保服务不会自动启动Windows; 以防万一 包装的rsync二进制文件不是本地Windows端口,而是build立在cygwin上。 但是,包含的cygwin DLL不能正确处理UTF8,并且会破坏非ascii字符。 从http://www.okisoft.co.jp/esc/utf8-cygwin/获取一个固定的DLL。 之后,转移额度从2MB / s跃升至〜8MB / s; 绝对精彩!
我们的监控办公室里有一大堆高清电视,关注着我们所有的生产设备。 我们正在监控: 思科路由器 惠普交换机 惠普公司的服务器 Windows 2003 IIS SQL服务器 目前我们使用 Nagios的正常运行时间/可用性和警报发送 仙人掌带宽使用 在Vista上运行Perfmon以获得服务器性能 其他工具和我们自己的自定义代码的组合来监视我们的实际应用程序性能。 除了Perfmon部分之外,所有这些都是很好的 – 它给了我们我们想要的东西 – 例如屏幕上的实时图表,logging某些性能指标等 – 唯一的问题是设置它是一件非常麻烦的事情。 如果运行Perfmon的Vista电脑重新启动(通常是由于Windows更新),那么再次设置所有的计数器会花费很长时间 – 对于办公室里的某个人来说,花费一两个小时的工作量。 任何人都知道以下两种方法之一:1.添加Perfmon计数器的脚本2.另一个带graphics输出和WMI / Windows计数器访问的工具。 谢谢 麦克风
为了: 增加我的网站的安全性 降低带宽要求 防止收集邮件地址
我有一台拥有多个VM(5)和3个物理网卡(每个2个端口)的计算机,共有6个1Gbps以太网端口。 我有一个SPFfunction的交换机,总共有48Gbps的带宽和一个10Gbps的SPF链路。 服务器也有一个SPF端口(10Gbps)。 我很好奇什么是最好的设置,性能明智的(充分利用每一点,最less的CPU使用),为什么。 将所有虚拟机连接到一个SPF端口,然后连接到交换机上的SPF端口,还是应该连接5个以太网电缆并将它们连接到networking交换机上的5个端口? 如果还有点不清楚的话,可以想象这个场景: 交换机上的两台PC分别需要从VM A下载一个大文件,从VM B下载另一台PC。如果它们与以太网连接,每个PC都有它自己的连接,所以从VM A的连接将切换到PC A ,同时VM B的连接会切换到PC B,对吗? 如果您要将两台虚拟机连接到SPF,则SPF端口将在PC A和B之间切换。 那么哪种情况在最大负荷下performance最好呢? 为什么? 编辑:我想保持这个相当通用的,所以它可以应用到一个全球性的情况,但细节已被问到的设置,在这里他们是: 服务器:PowerEdge T620 SPF卡:PEX10000SFP 10千兆位 网卡:3个NetXtreme BCM5720 操作系统:XenServer 6.2 CPU:至强E5-2609 开关:T1600G-28TS 客户操作系统:Debian Wheezy(PV)