服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

MySQL复制性能

我在两台机器之间有一个严重的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 […]

nginx和memcached如何一起工作?

我们有一个在Glassfish应用服务器集群上运行的基于Java EE的Web应用程序。 传入stream量将主要是基于XML的RESTful请求,用于表示我们的应用程序资源,但是可能有5%的stream量是基于JSON或XHTML / CSS的表示forms。 我们现在正在研究负载均衡解决scheme,以便在集群中的Glassfish实例之间分配传入stream量。 我们也在研究如何使用memcached卸载集群,这是一个内存分布式哈希映射,其键是REST资源名(例如“/ user / bob”,“/ group / jazzlovers”),其值是相应的XML表示。 听起来很有前途的一种方法是一举两得,并使用轻量级,快速的nginx HTTP服务器/反向代理。 Nginx将通过首先在memcached中查找它的URI来处理每个传入的请求,以查看是否存在尚未到期的XML表示。 如果没有,nginx将请求发送到其中一个Glassfish实例。 nginx memcached模块在这个简短的介绍中有描述。 你对nginx和memcached的总体印象如何,用这种方式,你对他们有多开心? 你觉得哪些资源最有助于了解它们? 如果你尝试了他们,他们不适合你的目的,为什么不,你用什么? 注意:这是一个相关的问题 。 在我知道有关ServerFault之前,我在StackOverflow上询问了这个问题。 编辑:到目前为止所有的答案都相当有帮助,虽然没有直接的经验。 这个答案最终在StackOverflow上显示出来了,而且在nginx / memcached安装上也是非常看好的。

我对计算MTU有什么误解?

好的,我刚刚解决了几个Xserves,一个Netgear GSM7224和一个Drobo B800i之间的巨型帧问题。 事实certificate,Xserves(Mac OS X 10.6.8服务器)和Drobo B800i以通常的预期(1500-9000)字节接受MTU,但是Netgear似乎希望它包括各种以太网头/页脚(拖车),我最终以configuration了9000的MTU和Netgear端口设置为9216的MTU的Xserves&Drobo结束了。 我已经使用了以下命令来testing和validationNetgear上两个Xserver之间的MTU(注意:这些是Mac OS X命令,Windows和Linux的命令不同): ping -D -s <mtu> <ip_address> traceroute -F <ip_address> <mtu> 前者的用法在man页中标记为“指定要发送的数据字节数,缺省值为56,当与8个字节的ICMP头数据组合时,转换成64个ICMP数据字节。 在testing中,我发现ping -D 1472 <ip_address>相当于MTU 1500,因为有8个字节的ICMP头部数据加上20个字节的IP头部(见本和这个 )。 这一切都是有道理的。 现在,为什么9000 MTU的等价命令ping -D -s 8164 <ip_address> ? 我已经validation这是我明星之前得到“sendto:消息太长”的错误的限制,但也是9000 MTU正常工作作为traceroute -F <ip_address> 9000作品和traceroute -F <ip_address> 9001不。 那么,为什么8164? 我预计8972(MTU – 28字节,就像1500 MTU)。 另外,为什么Netgear 9216 MTU? 我为MAC和以太网报头(包括CRC)计算了42个字节,加上了20个IP报头(应该吃进MTU)。 我在这个math上真的很生疏,知道我只是想念一些东西。