Articles of 性能

以编程方式测量磁盘IO

我想在一个给定的时间范围内,以编程方式测量一些与磁盘io相关的数字。 这意味着我不想像iostat那样产生一个进程来获得我的数字,比较喜欢从proc或类似的地方读取某些东西。 我需要知道: 写入磁盘的块数 从磁盘读取的块数 从磁盘中读取但在磁盘caching中find的块的数量 即将写入磁盘的块的数量,但尚未写入,以知道有多less成功的IO我可能期望。 如果我只通过磁盘或分区得到这个信息…这更好,因为我不需要知道从proc读取了多less信息。 如果我另外知道这个过程等待IO完成了多less时间…甚至更好。 这是可能的一些IO调用,或通过读取和parsing/ proc文件?

Postgres运行非常缓慢

嗨,谢谢你的阅读。 我正在分布式系统上工作,有8个集群,每个集群都有一个Postgres实例。 但是,其中一个Postgres实例与其他实例写入数据的速度相当缓慢。 所有的电脑运行相同的Ubuntu版本,具有相同的规格和相同的Postgres版本安装。 这是我做的: 执行一些Java代码,并通过JDBC连接将创build的数据写入数据库。 全部发生在一个Java实例中。 确切的数据不尽相同,但规模相同。 对于慢集群,我有以下执行时间(以秒为单位): Create Data with Java WriteData 92 11055 对于其他集群我有更多这样的事情: Create Data with Java WriteData 95 266 我已经检查过表空间是否有足够的磁盘空间,并且完全重新安装了Postgres实例,但是没有进一步的了解问题是什么。 感谢您的任何build议,我可以find潜在的问题! 更新: 一些性能参数: diskSlow: sudo hdparm -t /dev/sda6 /dev/sda6: Timing buffered disk reads: 76 MB in 3.05 seconds = 24.92 MB/sec diskOther: sudo hdparm -t /dev/sda6 /dev/sda6: Timing buffered disk […]

为什么单个驱动器比RAID5中的4个驱动器要快得多呢?

我有一个2005年的老式服务器(双3GHz至强,LSI53C1030T RAID / SCSI控制器256MBcaching,8GB内存),我重新利用它的一些轻的虚拟机存储任务。 首先尝试将4x300GB硬盘放入硬件RAID5中,然后在其上安装Openfiler的LVM和iSCSI。 这导致了非常不一致的读取速度(20MB /秒到2GB /秒,但这可能是caching),以及一个可怕但一致的8MB /秒的写入。 所有这些结果都是通过本地dd和networking上的实际大文件传输进行测量的,两者都得到了类似的结果。 所以经过大量的阅读,我发现前面提到的LSI控制器对于硬件RAID来说并不是那么好,所以我用4x300GB的硬盘关掉了通道的RAIDfunction,用mdadm软件RAID做了RAIDarrays,把LVM放在了它。 我做了更多的testing,结果得到了改善(写入20MB /秒),但是这还是相当可怕的。 我花了一天时间alignment分区,优化块,条纹宽度,步幅,玩ext4选项,不同的日志选项等,没有太多可观察的改善。 我做的另一个实验是在/ dev / md0和/ dev / mapper / vg0-lv0上运行hdparm -tT (这只是整个md0的映射),而在通过LVM时,我得到了2倍的减速。 我已经读过,LVM可以引入一些速度惩罚,但将速度降低一半是不可接受的。 由于这一切都没有意义,我回到基础,在一个单一的驱动器,没有LVM,RAID,只是普通的旧SCSI320做了一个单一的分区,并对其进行了一些testing。 我得到了〜75MB /秒的读取和〜55MB /秒的写入多个运行和多个程序。 所以如果一个驱动器可以做到75MB /秒的读取速度和55MB /秒的写入速度,为什么3个RAID5(硬件或软件! 我究竟做错了什么? 还有什么我应该尝试? 更新1:在继续实验的同时,我注意到其中一个磁盘有时不想被分区; parted和fdisk会拒绝实际写出分区。 所以我在所有其他的磁盘上试过相同的命令,以确保它不是一个系统性的问题,而且它看起来只被隔离到一个磁盘上。 我继续运行smartctl的健康testing,一切都很好。 dmesg是唯一的来源,表明驱动器可能存在某些问题,尽pipe这些信息相当神秘而不是特别有用。 出于纯粹的好奇心,我拿出硬盘,重新启动,重做了目前为止所做的所有软件RAID5,而没有使用LVM,但使用了ext4。 在第一次尝试时,当使用dd在64kB块中将4.2GB文件转储到新分区时,我得到了200MB /秒的读取和120MB /秒的写入到五个驱动器arrays(同时发现两个300GB的驱动器)。 显然这个驱动器虽然没有完全死掉,但并不是特别合作,一旦超出这个范围,一切都变得更好了。 现在我觉得更安全,8MB /秒感觉不对,不pipe是哪个RAID级别。 明天:用LVMtesting,也许回到硬件RAID。

如何协调networking吞吐量的networking速度?

我一直在和我的互联网服务提供商讨论他们提供的服务。 主要是关于吞吐速度。 我已经build立了一个边缘路由器(参见下面列出的硬件细节),并且已经build立了以下testing来定期(通过cron)获得速度: wget –no-cache –output-document=/dev/null -a /opt/result.txt http://speedtest.wdc01.softlayer.com/downloads/test10.zip Cacti被设置并被configuration为从这个脚本获取输出并直接显示,没有明显的修改。 (我是仙人掌新手。) 仙人掌也有图表configuration显示stream量进出两个接口的bps,这里是我的问题在哪里(躺?)…这里是我困惑的地方: 早些时候,testing速度为〜200Kb / s。 不是很好..没死。 但是当我看到入站(下载)的stream量bps时,它显示的最大速率> 1.4 Mb / s。 我如何阅读这两个看似矛盾的数据来做出准确的陈述? 我在某处是否错误地configuration了报告图表,还是只是误解了我面前的情况? Hardware — Dell PRECISION WS340 Linux servername 2.6.18-308.8.1.el5 #1 SMP Tue May 29 14:57:06 EDT 2012 i686 i686 i386 GNU/Linux # WAN Port eth0 Link encap:Ethernet HWaddr 00:06:5B:DD:37:D9 inet addr:192.168.100.100 Bcast:192.168.100.255 Mask:255.255.255.0 […]

为什么存储的性能在不同的队列深度发生变化?

我正在市场上为我们的服务器进行存储升级。 我正在研究各种PCIe SSD设备的基准testing,并且在比较中我看到IOPS在不同的队列深度发生变化。 这怎么可能,为什么会这样呢? 我理解的方式是:我有一个最大(理论)10k IOPS的设备。 如果我的工作负载持续产生100001 IOPS,那么我的队列深度为1,我是否正确? 然而,从我在基准testing中看到的一些设备在较低的队列深度下运行速度较慢,然后在4-64的深度加速,然后在更大的深度再次减速。 不是队列深度是操作系统(或者可能是存储控制器)的属性,那为什么会影响IOPS?

为什么zfs性能不好在fs内移动文件?

在我的FreeNAS NAS(9.1.1运行zfs v28)上,我在同一个raidz fs中的两个目录之间的文件移动性能非常糟糕。 这是预期的吗? 我怎么能发现,如果不是? 在这种情况下,应用程序是Beets(mp3 mgmt软件),在NAS本身的监狱中运行,所以它不是CIFS性能或networking问题 – 数据不会离开服务器。 所有的软件正在做的是重命名为不同的目录,但性能就好像是复制所有的数据。 系统没有任何特定的负载。 为了以防万一,我实际上停止了在服务器上运行的其他进程来释放一些内存和CPU。 更新:这两个目录在监狱里的同一个挂载点上。 在raidz1游泳池是4 x 2TB SATA驱动器。 无重复数据删除或压缩。 更新2:禁用FS上的时间也没有什么区别(以为我不妨试试看)。 更新3:zfs / zpool输出。 [root@Stillmatic2] ~# zpool status pool: jumbo1 state: ONLINE scan: scrub repaired 0 in 95h19m with 0 errors on Wed Jul 16 23:20:06 2014 config: NAME STATE READ WRITE CKSUM jumbo1 ONLINE 0 […]

简单的双服务器场景中的巨大扩展问题

我目前正在两个不同的地点(数据中心)运行一个网站,但运行同一台机器。 过去的几个月,整个performance一直在下降,我还没有find一个罪魁祸首。 两台机器都运行Intel(R)Xeon®CPU E3-1245 V2 @ 3.40GHz(8线程),32GB内存,SoftRaid上的2x120GB SSD磁盘。 两台机器都运行以下软件: PHP-fpm7.1 nginx的 Percona MySQL(configuration为主 – 主) Redis的 两台服务器都运行相同的代码,我使用Amazon Route 53来平衡使用DNS的stream量。 服务器曾经运行良好,约2000用户浏览网站(来自Google Analytics的数据),负载平均值永远不会超过1。 最近我看到一个巨大的性能下降。 任何任务将平均负载平均到6-8,有时它会轻松超过15-20。 即使是一个单一的代码部署(几个bash任务和一个没有太多麻烦的git克隆)将会永远消失,并会看到负载平均值上升,并放慢整个机器和网站。 几个月前,我不得不增加MySQL连接,同时我增加了打开文件的限制。 当前的MySQL连接是在2000年,我让MySQL自己打开的文件(值= 0将自动检测到这一点)。 我的主要猜测是,这是与数据库configuration有关的东西,我看到缓慢,而复制(是主 – 主复制),每次有一个插入网站,我可以看到加载时间跳转到10-15秒。 最奇怪的是我只有一台服务器的stream量。 使用AWS Route 53,我已经从池中删除了其中一台服务器,所以只有一台服务器实际上正在加载,即使如此,机器仍然过载。 这里是一个例子: 当发生这种情况时,我试图在网站上发表评论,这是一个简单的INSERT表,其中有一行,它只是插入3个值: 事情是…这个网站在我的Vagrant开发机器上运行得更好,有1个CPU和2GB,比在大箱子生产中的效果要好。 我确定有一些文件是你想要帮助的,我只是不知道有什么可能是有用的,所以只是让我知道,我会显示你可能需要的任何configuration。 提前致谢! 更新#1 # sar Linux 3.14.32-xxxx-grs-ipv6-64 (freud.rbx.host.net) 11/10/17 _x86_64_ (8 CPU) 22:06:51 LINUX RESTART (8 CPU) 22:08:16 […]

什么应该排除在基于Microsoft的服务器(IIS,MSSQL等)上的病毒扫描?

我想让防病毒软件不会影响TFS安装的性能 – 应该从防病毒扫描中排除什么? IIS? MSSQL? 我是否打开自己的可能的攻击通过排除这些? 我看到一些build议,说杀毒软件可以干扰MSSQL服务器打开其数据库文件的能力。

戴尔PowerEdge IO和性能相关的问题

我有一个戴尔PowerEdge 830,但安装了第4个磁盘后,同时复制备份文件到这个新的磁盘服务器的整体性能只是直线下降。 系统降级到无法通过networking远程访问,基本冻结。 但一旦我取消复制操作,事情就会恢复正常。 我可以提供更多关于这个问题的信息,但是现在我认为这与公交车的速度有关,但为什么这么激烈呢? 有什么我可以做,以确定问题,或有任何人遇到类似的问题? 当前的磁盘configuration 3个连接到DELL CERC SATA 1.5 / 6ch RAID控制器的磁盘 这些磁盘中只有两个形成一个RAID0arrays 第三个磁盘似乎没有使用 RAIDarrays有3个分区,EISAconfiguration31MB(不知道这是什么),C:132GB和D:165GB 第四块磁盘连接到主板上的SATA端口 从RAIDarrays复制到第四个磁盘会导致服务器性能下降,几乎完全无法响应。

如何testingLinux上的磁盘延迟?

升级RAID固件和延迟,似乎已经增加。 您能否以最准确的方式提醒您检查磁盘读取和写入延迟?