我在很多地方都看到吞吐量 = bs * iops 应该是真的。例如,以 128k 块大小写入可以支持 190 IOPS 的 SAS 磁盘应该提供 ~23 MBps - 的吞吐量
23.75(MBs) = 128(BS)*190(SAS-15 IOPS)/1024。
现在,当我在 VM 中针对一个巨大的 NetApp 文件管理器对其进行测试时,我得到了以下结果:
# dd if=/dev/zero of=/tmp/dd.out bs=4k count=2097152
8589934592 bytes (8.6 GB) copied, 61.5996 seconds, 139 MB/s
Run Code Online (Sandbox Code Playgroud)
要查看 VM 的 IO 速率,我使用了 iostat 和 esxtop,它们都显示大约 250 IOPS。
所以据我所知,吞吐量应该是 ~1000k:
1000(KBs) = 4(BS)*250(IOPS)。
8GB 的 dd 当然是 RAM 大小的两倍,所以这里没有页面缓存。
我错过了什么?
谢谢!
我不确定为什么会发生这种情况,但这些是完全错误的结果:
Children see throughput for 15 re-readers = 12793134.62 KB/sec
Parent sees throughput for 15 re-readers = 12753940.84 KB/sec
Min throughput per process = 515695.50 KB/sec
Max throughput per process = 1088000.75 KB/sec
Avg throughput per process = 852875.64 KB/sec
Min xfer = 249856.00 KB
Children see throughput for 15 random readers = 12667347.75 KB/sec
Parent sees throughput for 15 random readers = 12613558.90 KB/sec
Min throughput per process = 685239.00 KB/sec
Max throughput per process = 1318021.25 KB/sec
Avg …Run Code Online (Sandbox Code Playgroud) 我们有一个大约 100 GB 的 Oracle 数据库,它运行在 ESX 中的 Windows Server 2k3R2 VM 之上,采用 1 插槽、1 核配置。每当它必须处理一个主要查询时,它似乎会在该查询的持续时间内(50% - 75% CPU 利用率)被“锁定”,并且在某些情况下会限制使用它的应用程序的功能。最典型的情况是,当我们运行大量报表时,单独的查询会在查询运行时显着降低应用程序的性能,就好像它在排队任务一样。我的问题是:将虚拟机“升级”到 1 插槽、2 核配置会显着改善这个“挂钩”问题吗?
我对从非 ssd 磁盘随机读取的延迟感到沮丧。根据以下测试程序的结果,在没有操作系统缓存帮助的情况下,随机读取仅 512 字节的速度约为 16 毫秒。
我尝试将 512 更改为更大的值,例如 25k,但延迟并没有增加太多。我猜是因为磁盘寻道主宰了时间。
我知道随机读取本质上很慢,但只是想确保 ~16ms 是合理的,即使对于非 ssd 磁盘也是如此。
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/unistd.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv) {
int fd = open(argv[1], O_RDONLY);
if (fd < 0) {
fprintf(stderr, "Failed open %s\n", argv[1]);
return -1;
}
const size_t count = 512;
const off_t offset = 25990611 / 2;
char buffer[count] = { '\0' };
struct timeval start_time;
gettimeofday(&start_time, NULL);
off_t …Run Code Online (Sandbox Code Playgroud) 我有一个在 12.04 Ubuntu 主机内运行的来宾 VM。VM 是使用 vmbuilder python 脚本创建的。
在主机上,phoronix-test-suite "aio-stress" 提供了 >1600MB/s 随机写入吞吐量的性能速度。
VM(也运行 12.04)提供大约 3MB/s 的随机写入吞吐量。远,差远了。 http://openbenchmarking.org/result/1301161-BY-20130116176
我已将主机上的默认文件映像类型从 qcow2 更改为 raw 以提高磁盘吞吐量,并确保编辑 vmbuilder 模板以使用“virtio”作为目标开发者。
这导致速度提高到 7.5MB/s - 仍远低于我的预期。
去年运行 10.04(具有 10.04 个虚拟机)的同一台机器实现了 700MB/s 的吞吐量:http : //openbenchmarking.org/result/1205239-BY-20120523168
谁能指出我可能有什么问题?
有没有办法监控磁盘健康状况并发送 cronjob 报告以发现错误?
我知道你可以smartctl -s on -a /dev/hda用来提取信息,但只是想知道是否有一种方法可以用来过滤并且只在需要注意的时候发送。
SmartMon 是我想要研究的东西吗?
我正在尝试在这两个英特尔处理器之间做出决定
他们中的第一个在核心中没有图形支持。
我知道这种类型的图形“卡”可用于执行来自常见(非图形)应用程序的代码,但我不知道我要安装的应用程序是否利用了这种处理器特性。
我将使用服务器:
集成图形支持是否有助于提高这些应用程序的性能?
我正在决定我将使用哪些处理器,我需要有关“MSSQL 2012 与 CPU 内核实际如何工作?”的信息。
基本上我的问题如下:
我有一个 Drupal 站点,它在启动时可能会获得非常高的命中率。我们为首次发布租用了一个非常强大的服务器,之后我们将缩减规模。该服务器具有 Xeon E5-2670 8 核处理器 @ 2.6ghz 和 30gb RAM。
MySQL 已经获得了大量内存,我已经确认 MySQL 实际上是通过“top”使用这些内存的:
innodb_buffer_pool_size = 15G
Run Code Online (Sandbox Code Playgroud)
PHP 已经获得了大量内存(几乎可以肯定是太多了,因为我注意到评论说“每个脚本”):
memory_limit = 6000M
Run Code Online (Sandbox Code Playgroud)
Apache 配置是开箱即用的默认配置:
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
Run Code Online (Sandbox Code Playgroud)
我一直在运行 JMeter 测试(基本上“在站点上抛出尽可能多的线程并尽可能快地请求页面”)并且我可以看到性能随着并发用户数量的增加而下降:
但是,机器上的负载仍然很低。在测试期间,“top”报告有 26gb 的可用内存,“uptime”的平均负载不超过 0.63。我怀疑我们仍然有很多资源可以用来提高性能,但是 Apache 并没有充分利用这些资源。也就是说,我是一名开发人员而不是系统管理员,我也不是服务器性能方面的专家。
为了提高性能,我可以做出的最佳改进是什么?
我正在使用 ubuntu 服务器 12.04 x64。服务器通过 apache 网络服务器(它的轻量级接口)接收大量对 mysql 的请求。从 mysql 统计信息中,我看到从早上 8 点到晚上 9 点大约有 250 个查询/秒。晚上服务器几乎不使用。RAM 主要由 mysql 使用(根据 mysqloptimizer 最大 MySQL ram 使用量为 25GB)。Top 证实了这一点 - mysql 使用了大约 77% 的 RAM。
数据库大小约为 20GB。一张受到最严重攻击的表有大约 1-2 百万条记录(主要是来自几个表的 id 字段加上一些 smallints 计数器)。
我附上了说明我感兴趣的部分的图像(第二个内存图像显示了服务器重启后的内存行为)。
在看 munin 时,我提出了几个问题:
为什么在内存使用中apps内存几乎永远不会下降?例如在晚上服务器上没有流量时,它不应该减少吗?
以某种方式调整它为缓存提供更多内存空间不是更好吗?
RAM已满时,为什么CPU使用率如此之低?
不活跃的记忆水平也在上升,这让我有点担心。
出现这些问题是因为偶尔流量会在短时间内显着上升,并且在那些时刻服务器没有响应大量请求。但在那些时刻,RAM/CPU 甚至磁盘延迟并没有增加太多,也许只是一点点。这些流量上升是不可避免的,但我不确定用 stringer one 替换服务器是否会做到这一点,或者可能只放置更多 RAM(因为 CPU 使用率最低)?
如果这个问题无法回答 - 抱歉。
编辑: # # MySQL 数据库服务器配置文件。# # 您可以将其复制到以下选项之一:# - "/etc/mysql/my.cnf" 设置全局选项,# - "~/.my.cnf" 设置用户特定选项。# # 可以使用程序支持的所有长选项。# 使用 --help 运行程序以获取可用选项列表,并使用 …
performance ×10
linux ×3
hard-drive ×2
mysql ×2
apache-2.2 ×1
cpu-usage ×1
drupal ×1
intel ×1
io ×1
iops ×1
iozone ×1
memory ×1
monitoring ×1
multi-core ×1
oracle ×1
php ×1
sql-server ×1
storage ×1
ubuntu ×1
ubuntu-12.04 ×1
vmbuilder ×1
vmware-esx ×1