我正在使用postgreSQL进行科学应用(无监督集群)。 python程序是multithreading的,所以每个线程pipe理自己的postmaster进程(每个核心一个)。 因此,它们是很多并发的。 每个线程进程通过两个SQL查询无限循环。 第一个是阅读,第二个是写作。 读操作考虑500次写操作考虑的行数。 这是dstat的输出: —-total-cpu-usage—- ——memory-usage—– -dsk/total- –paging– –io/total- usr sys idl wai hiq siq| used buff cach free| read writ| in out | read writ 4 0 32 64 0 0|3599M 63M 57G 1893M|1524k 16M| 0 0 | 98 2046 1 0 35 64 0 0|3599M 63M 57G 1892M|1204k 17M| 0 […]
我们的SQL查询有时花费太长时间。 我们有一个Windows Server 2003 / SQL Server 2005安装程序。 我们已经创造了索引到处都是可能的。 我们可以得到更快的磁盘? 任何人的想法?
经过search和阅读尽可能多的post,评论和讨论,我可以find我没有find一个具体到我的问题。 我有多个AWS EC2部署,在同一个交付区域中使用单个RDS us-west-2(c) 我正在testing实例的负载,只是我很快就会预期的一小部分。 我所关心的问题是推送更新时的性能。 我们将会频繁地获取1,000条logging的更新信息,并会根据情况对数据进行比较和更新。 因此每个条目有一个读和一个写。 在一个小时内有100,000个更新来到我们这里并不罕见。 目前,我有一个AWS数据库上的AWS t2.medium类RDS运行5个更新进程在22%的CPU和小于1GB的内存。 即使有这么低的数字,106.3Klogging数据库的读取时间也需要2到3秒,而写入时间又是2秒。 我需要一些关于如何改善这些读写时间的想法。 其他信息:我也有一个副本实例运行。 CMS驱动的网站(每天100个)每天都会连接到副本实例以获取其内容。 谢谢!
我build立了一个将有很多用户的软件(希望),我将有用户没有太多的logging或超过正常的数据,我也将有大量的用户,将在许多表中有数百万的数据行。 将每个用户放在一个单独的数据库中,或者为所有用户提供一个主数据库,哪怕数据在logging中可能会变得非常大,最好如何呢? 我担心性能,SQL服务器仍然能够正常执行,即使在每个用户的数百万logging后? 数据的结构将是相同的,因为它们将全部与相同的软件交谈。 有任何想法吗? 谢谢。
我需要尽可能快地将行插入到新创build的表和没有索引的数据库中。 我正在看20M行,这不是很多。 InnoDB或MyISAM表会给我最好的performance吗? 显然,还有其他的批量加载技巧,我也在看。
两天前,我们的产品服务器遭受了巨大的经济下滑,主要症状是极其多的请求遭遇SQLTimeout。 我会很快描述我们的设置,我调查了什么,我们的解决方法,然后将跟随我的问题。 我们的设置 一对服务器托pipe我们的SAS应用程序的这个分支。 一个是在IIS上运行多个应用程序的应用程序服务器,另一个是遭受速度下滑的应用程序服务器,它是一个运行SQL Server 2005的Windows Server 2008服务器.SSQL托pipe的是100到200个数据库。 问题/调查 服务几乎停下来。 一些请求通过,但大多数遭受SQL超时。 SQL机器CPU和RAM看起来不错,平均CPU工作量大约为25%,内存大小为85%。 我当时没有想到要检查磁盘的活动,因为我直接去了'EXEC sp_who2' 结果显示数百个任务被ID 123阻塞,这个任务本身和其他100个任务被ID 456阻塞。正常执行通常根本没有阻塞任务。 当我在15-20秒后重新运行sp_who2时,popup了不同的阻塞ID,但阻塞/阻塞任务的数量似乎保持不变。 (由于紧急模式没有统计组) 大多数任务阻塞了“SELECT INTO”或“CREATE INDEX on temptable”等语句。 解决方法 杀死SQL进程并重新启动以恢复服务。 经济放缓没有重现,但我们知道我们处于危险之中。 我的问题 我能做些什么来解决这个问题,最好在重新发生之前呢? 子问题: 在正常的活动中,我可以调查另外一条路吗? 如果/当问题再次出现,我应该收集哪些信息? (需要快速获得,因为这意味着我们将再次遇到服务中断) 我到目前为止做了什么 从症状来看,我们怀疑问题是tempdb上的某种争用。 (另一个症状是右键单击tempdb以查看问题期间的属性在短时间内生成错误) 没有日志表明在tempdb上发生了自动增长事件,尽pipe据我所知,自动增长成功不会被logging,只有失败。 从那时起,我已经阅读了很多不同的信息来源,包括tempdb, http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/ http://www.sqlservercentral.com/blogs/robert_davis/2010/03/ 05 /断-下- TempDB的争用/ 从我收集的信息来看,最好的做法是设置初始大小的tempdb文件,并且每个核心最多有8个文件。 我们的计划是尽快实施(8核心,8个文件),因为这是最好的做法。 他们都将在同一个硬盘(现在),但我们认为最坏的情况是没有改善,最好的情况是我们获得逻辑争用瓶颈和磁盘I / O瓶颈之间的差异。 但是,我们不能确定与我们所遇到的问题的相关性。 据我所知,分裂到多个临时文件将有助于“PAGELATCH_XX”types的等待,但在正常活动期间运行Paul S. Randal的查询(请参阅第1页的链接),那种types的等待是不存在的。 我在正常活动中看到的前3名是: CXPACKET […]
我正在制作一个非常大的数据库(超过250个演出),超过2.25亿条logging。 这个数据库很难从其庞大的规模工作。 这个数据库只能作为只读使用。 我们正在寻找更快的硬件,但是我试图find最有效的方式来处理数据库。 该数据库必须每晚从主数据库更新,停机时间必须保持最短。 主数据库由第三方维护。 我试图find最好的方法来有效地更新数据库每晚,但我没有很多运气。 我研究了差异备份和事务日志备份,但为了应用其中的任何一个,必须首先恢复完整的数据库备份。 在我的情况下,这完全违背差异备份的目的,因为它不会节省我的任何时间。 我不妨每晚在master数据库上完成一次完整的备份,然后简单地恢复完整的备份,这样做会更快。 我希望find一个可以完成一次完整备份(或者一个月一次)的解决scheme,然后从那时开始,只需应用一些基于相互构build的增量式备份(基于原始完整备份) 。 这将使宕机时间降到最低,因为一旦完成第一次完整备份,我只能每晚应用增量备份。 我会简单地重build每个“增量”备份后的索引速度。 我还没有find像这样真正可行的解决scheme。 我已经尝试在testing数据库上做一个完全还原WITH STANDBY,这样我就可以查询数据,然后再应用事务日志和事务日志。 这是一个有限的成功,因为我不能做像添加索引,因为这是技术上写入数据库。 但是,这与我所寻找的非常接近,因为数据本身将是只读的。 有没有解决scheme是这样工作的? 我宁愿避免使用STANDBY选项,因为它并不意味着以这种方式使用。 我现在正在深入研究数据库备份和性能,并不断阅读MSDN,但似乎这个解决scheme不是一个选项。 我以为我会问最后的手段 – 当然这里有一些pipe理大型数据库的地方,夜间恢复是不切实际的。 有什么build议么? 我也开放给build议/链接到性能的页面,因为我从来没有一个数据库这么大的工作。 恐怕复制可能是唯一的答案。
我有一个有趣的数据库问题。 我有一个150GB的DB。 我的内存缓冲区是8GB。 我的大部分数据很less被检索,或主要被后端进程检索。 我非常希望把它们放在一边,因为有些function需要它们。 其中一些(即某些表格和某些表格的某些可识别部分)经常以面向用户的方式使用 我怎样才能确保后者总是被留在记忆中? (这里有足够的空间) 更多信息:我们正在轨道上的Ruby。 数据库是MYSQL,我们的表使用INNODB存储。 我们正在将数据分成两个分区。 因为我们正在分解它,所以我们使用JSON blob来存储大部分数据,而只索引主键
我正在从Rackspace Cloud平台迁移到Azure,但是我遇到了一些实际的性能问题。 似乎所有的事情都有点慢,但特别是数据库交互。 我已经对CPU和Sql数据库的所有不同的Scale选项进行了一些负载testing,并且只有在Rackspace帐户完全超出时才会与Rackspace帐户相当。 让我澄清一下,Azure系统可以处理更多的负载,但是它的响应时间比Rackspace慢。 我没有写下确切的负载水平是什么Azure会比Rackspace快,但它比我们目前的负载高得多。 我被问到一些特定的问题,如:数据库和Web服务器在同一个数据中心? 我不知道如何检查,但似乎不是。 有没有select让他们在同一个数据中心? 另一个问题是:我是在虚拟机上运行Sql Server还是使用服务? 我没有设置虚拟机,我去了Sql数据库选项卡,并创build了一个数据库。 有什么可以提高Azure平台的数据库性能吗? 任何方式来减less连接的延迟?
我试图找出一个新的SQL Server实现(2012年企业)的瓶颈。 我一直在运行一些需要相当长时间的丰富的查询/ ETL工作 – 但是我很难确定是什么限制因素。 该服务器是带有2个Intel(R)Xeon(R)CPU E5-2609 0 @ 2.40GHz(每个4个内核)的Dell R720。 它有384Gb的RAM。 数据存储是一个MD1220arrays,内置24个400GB的戴尔SSD。 arrays通过2个6Gb SAS连接连接到1Gbcaching的H810。 存储日志是在R720的内部托架中连接到内部H710P控制器的15 x 600Gb 15K戴尔旋转磁盘。 我正在使用的数据库是200GB – 所以应该完全适合RAM。 高速caching命中率是99.997% – 这就表明了这种情况。 因此,我期待CPU的限制因素 – 但是CPU的剔除率约为10%。 没有一个核心运行热。 对arrays(数据和日志)和双向(读取和写入)的IO利用率也低于50MB /秒 – 我相信应该能够接近饱和SAS。 我玩过MAXDOP(目前设置为4)无济于事。 我正在使用的查询主要是操纵数据 – 不提取数据并通过networking发送 – 而且networking吞吐量很小。 任何想法的瓶颈可能是? 难道是内存或内部总线的速度? 任何build议,我应该看看下一个? 谢谢, 麦克风