我们正在远程执行非现场mysql复制和有限的带宽 – 大约200ms和大约70KB / s(最大)的延迟。 复制工作是零星的,转移几十千字节,然后重新连接。 我已经将问题追溯到客户机上的mysqld守护进程的错误tcp / ip行为 – 当单个tcp / ip数据包丢失时,整个ACK /重传序列无法恢复连接,并在某个时刻服务器发出FIN。 值得注意的是,来自同一台服务器的scp可以正常工作(即使偶尔会丢失数据包)。 从客户端机器到服务器的Mysql客户端也能够正常工作,偶尔丢包不会中断连接。 服务器和客户端都有相同版本的mysql服务器: mysql> SHOW VARIABLES LIKE '%version%'; +————————-+———————+ | Variable_name | Value | +————————-+———————+ | protocol_version | 10 | | version | 5.0.67-0ubuntu6-log | | version_comment | (Ubuntu) | | version_compile_machine | x86_64 | | version_compile_os | debian-linux-gnu | +————————-+———————+ […]
我正在通过uwsgi与nginx运行django网站。 问题是当stream量变大时,uwsgi进程需要很多的CPU时间。 相同的configuration在testing服务器上正常工作,siege / ab模拟大量的并发stream量。 这里是uwsgi进程的一个strace日志。 http://dl.dropbox.com/u/43017476/strace.log 还有一些sysctl: fs.file-max = 128000 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.core.netdev_max_backlog = 4096 net.ipv4.tcp_max_syn_backlog = 4096 net.core.somaxconn = 250000 net.ipv4.tcp_keepalive_time = 300 nginx conf与Google的其他教程非常相似。 我一直在试图弄清楚,但没有运气。 不过,我发现了很多这样的东西: 22:12:02.932276 read(8, "\7\0\0\2\0\0\0\2\0\0\0", 16384) = 11 22:12:02.932504 poll([{fd=8, events=POLLIN|POLLPRI}], 1, 0) = […]
我试图通过Fedora 11访问来自gsm模块的文本消息。我想读取消息的内容,然后使用它来访问在MySQL中编写脚本的数据库((即)我收到的消息将是一个数字这已经在数据库中可用)。 有什么软件专门为Fedora 11,这有助于我做到这一点? 请帮忙。 这是我最后一年的项目。
我有两个MySQL集群,它们之间有Master-Master复制设置。 大多数表是基于日志的,只有插入和select,所以它们在复制时没有任何问题。 但是,我有几张表格,它们保存了实时系统的当前“状态”信息。 这些表中的条目被更新,并且具有显示其最后更新的时间戳字段。 当复制中断时,这两个群集可能正在写入相同的行。 是否有可能让复制保留具有最新更新列的logging? 如果不是(我的研究显示它不可能),我可以用什么解决scheme呢?
注意:我是一名自学成才的PHP开发人员,他几乎没有任何pipe理Web和数据库服务器的经验。 我即将为一个非常大的用户群编写一个基于Web的考勤系统。 我希望大约有1000到1500个用户同时login,每10秒钟至less发一个请求,每天3次,每次30分钟。 因此,每秒100个请求或者最差的1000个请求(每个请求的平均时间为16个并发请求),但是由于用户发出这些请求的时间很短,所以它可能会更高。 )。 我期望两种types的交易, local (不是指localnetworking)和foreign交易。 local交易基本上在本地下载用户数据并caching1到2周。 出席equests可能只有两个数字string: userid和eventid 。 foreign交易是为了不属于当地的人出席。 这将传递以下数据:( (numeric) locality_id , (string) full_name 。 这两个请求都是在Ajax中完成的,所以没有包含HTML数据,只有JSON。 这两种请求都至less需要来自服务器的单个数字响应。 我认为local和foreign交易的频率会有50-50倍的差距,但是这些交易的规模只有几个字节的差异。 截至此刻, userid只能达到6位数, eventid位也是4至5位整数。 我期望我的users表至less有400k行, event表有多达10k行,一个locality表至less有1500行,而我的主要出勤表增加了400k行(根据用户数量在users表中)每周3天一天(每周120万行)。 对我来说,这听起来很大。 但是这真的很大吗? 或者这可以由一个单一的服务器处理(不知道服务器的规格,因为我可能会利用VPS从ServInt或其他人)? 我试图读取多个服务器上的设置Heatbeat , DRBD ,主从设置。 但是我想知道他们是否真的有必要。 users表每周将增加约500个1k行。 如果这不能由一台服务器来处理,那么如果我select一个MySQL复制拓扑,那么这种情况下最好的设置是什么? 对不起,如果我听起来含糊或问题太广泛。 我只是不知道该问什么,或者你现在想知道什么。
根据Percona: 卸载文件系统或使其只读,如果… 你有文件系统损坏或 您已经以innodb_file_per_table格式删除了表 如果我启用了innodb_file_per_table,并意外删除了一个表,而将datadir挂载在/分区内,数据仍可以恢复吗? 显然你不能使用卸载的根文件系统。 我们的VPS主机有一个我们无法自定义的默认文件系统表。 我想知道在未来的情况下。 编辑:将通过NFS挂载/文件系统到另一个系统只读是一个解决方法? TIA。
我的网站上访问我的MySQL数据库的页面性能随着时间的推移变慢,直到我重新启动我的服务器。 (静态页面不受影响。)重新启动mysqld本身没有帮助,但重新启动整个服务器有帮助。 我已经尝试过不同的MySQL性能调整和启用caching,没有一个帮助。 它起初速度非常快,但几天后变得更慢,最终变得难以忍受。 我从命令行运行的任何mysql操作都非常好,包括连接到mysql,连接到数据库以及运行查询。 慢查询日志不显示任何exception。 但是,我的网站上的任何与mysql连接的页面运行速度都很慢。 如果我重新启动我的服务器,一切都会再次运行,直到它再次变慢。 my.cnf文件: max_connections = 500 query_cache_size = 10M tmp_table_size = 16M max_heap_table_size = 16M thread_cache_size = 4 innodb_buffer_pool_size = 7G symbolic-links=0 顶部,服务器最多3天: 顶部,服务器重启后5分钟: 我应该采取哪些措施来隔离和解决这个问题?
我正在使用Amazon RDS为我的网站托pipe数据库。 我正在使用我的主和我的只读副本的大型实例。 一切正常运行,直到AWS控制台中突然读取IOPS,读取吞吐量和队列深度指标突然增加(蓝色实例是我的主服务器,橙色实例是从服务器)。 在发生这种高峰时,没有部署工作量大或代码变更的工作。 自那时以来,根据AWS控制台的CPU利用率略有增加。 我也在运行munin插件来监视我的主服务器,从那时起,我看不到访问或networking吞吐量的变化。 到服务器的打开连接(使用show processlist检查)也保持不变。 我的RDS实例发生了什么? 什么可能导致这种影响,我怎样才能做到这一点? 为什么这种行为不在慕尼黑?
今天我的两个奴隶(一个MySQL 5.1和第二个MariaDB 5.5,主人是MySQL 5.1)开始滞后。 类似的情况经常会出现延迟,甚至10000秒,因为从属的硬件configuration比较差,但现在我非常强调。 两个服务器上的滞销仍在上升,在这一点上,它在主服务器之后25K秒。 于是我开始调查出了什么问题。 通过主日志和奴隶mysql日志没有给我什么。 服务器在Centos 5上,Mariadb在Centos 6上。 这是从MariaDB从站状态输出的: MariaDB [(none)]>显示从站状态\ G *************************** 1. row ******************** ******* Slave_IO_State:等待主控发送事件 Master_Host:masterserevr Master_User:slaveuser Master_Port:3306 Connect_Retry:60 Master_Log_File:mysqld-bin.006778 Read_Master_Log_Pos:401041447 Relay_Log_File:relay-bin.020343 Relay_Log_Pos:14867924 Relay_Master_Log_File:mysqld-bin.006777 Slave_IO_Running:是的 Slave_SQL_Running:是的 Replicate_Do_DB: Replicate_Ignore_DB:ses,phar Replicate_Do_Table: Replicate_Ignore_Table:portal.aaa_jm_tmp,portal.newsletter Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno:0 Last_Error: Skip_Counter:0 Exec_Master_Log_Pos:14867639 Relay_Log_Space:1474785535 Until_Condition:无 Until_Log_File: Until_Log_Pos:0 Master_SSL_Allowed:否 Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master:26484 Master_SSL_Verify_Server_Cert:否 Last_IO_Errno:0 […]
以防万一,如果你正在使用Monit版本5.1.1,并尝试用袜子来监视MySQL,它将总是失败,“连接失败” 我的监控configuration文件是: check process mysql with pidfile /var/lib/mysql/mysql.pid group database start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed unixsocket /var/lib/mysql/mysql.sock protocol MYSQL then restart if 5 restarts within 5 cycles then timeout 日志没有显示任何明确的错误,在互联网上的所有职位是关于使用TCP到MySQL。 我find的解决scheme是将monit升级到5.6,升级后monit将能够监视mysql sock而没有任何问题。 使用:epel库中的CentoOS 6 Monit 5.1.1-4.el6