增加预读缓存的大小有什么缺点吗?
在我们的农场中,我们目前的运行速度为 256,在将其提高后,我们看到吞吐量显着提高。
[root@server~]# hdparm -tT /dev/sda /dev/sda:
Timing cached reads: 7352 MB in 2.00 seconds = 3677.62 MB/sec 3
Timing buffered disk reads: 244 MB in 3.10 seconds = 78.68 MB/sec
[root@server ~]# blockdev --setra 10240 /dev/sda
[root@server ~]# hdparm -tT /dev/sda /dev/sda:
Timing cached reads: 11452 MB in 2.00 seconds = 5728.52 MB/sec
Timing buffered disk reads: 422 MB in 3.17 seconds = 133.04 MB/sec
Run Code Online (Sandbox Code Playgroud)
我们在 2.6 上运行。
我们有一个 LAMP 盒,带有 2 个镜像的 1 TB WD Black Caviar 磁盘,运行整个操作系统和 MySQL。8 GB / RAM,2 个四核 CPU。
我们真的对磁盘 I/O 负担过重,我一直在考虑建议在那里安装几个 SSD 驱动器/var/lib/mysql,然后完成它。我做了一些研究,我喜欢 Intel X25-M 160 GB 的价格点,但我已经阅读了有关生产中 SSD 的相互矛盾的选项。
我们大约有 70 GB,主要是 MyISAM 表(> 95%)。我们主要在生产期间(晚上 8 点到 5 点)进行读取,主要是在夜间(上午 12 点到早上 8 点)写入。
之前有一些关于生产中的 SSD 的有用帖子,但我认为更好的帖子有点过时了(最好的帖子是 2008 年)。是否有更多关于 SSD 是否真的为中型企业做好准备的最新反馈?如果没有,我怎样才能更好地扩展我们的数据库服务器?
在 Windows Server 2003 中,我在任务管理器中看到一个进程在 I/O 其他列中具有高值。我试图确定它是否处于某种错误状态,但我不知道 I/O 其他意味着什么。I/O 读取和写入较低。什么是 I/O 其他?
我也在寻找关于 I/O 其他操作是什么的更多细节,比“这种类型的操作的一个例子是控制功能”更多的解释。谢谢
我们有许多 Server 2012 系统,所有这些系统都在 Hyper-V 2012 服务器上运行虚拟化。我们遇到了两个这样的虚拟实例问题,这两个实例都用作文件服务器,因此它们偶尔会停止响应向客户端提供文件的请求。登录到服务器后,尝试正常关闭它失败(没有错误,它只是无法确认关闭请求)。
恢复是从 Hyper-V 控制台重启服务器的一种情况。
这两个服务器不为大量用户提供服务(一个服务不超过 6 个用户,另一个服务大约 20 个用户),它们在同一个域中,但是在不同的物理硬件上(并且在不同的站点)。它们不会同时锁定。他们都使用 DFSR 通过 ADSL 连接在他们之间复制相当大量的数据 (200GB),这工作正常,我们一直在使用 DFSR 在我们使用的前两代服务器操作系统 (Server 2008 R2和 Server 2003 - 但是两者都是物理安装)。
今天,当其中一台服务器崩溃时,我注意到事件日志中有一条类似于以下内容的条目:
Log Name: Application
Source: ESENT
Date: 27/11/2012 10:25:55
Event ID: 533
Task Category: General
Level: Warning
Keywords: Classic
User: N/A
Computer: HAL-FS-01.example.com
Description:
DFSRs (1500) \\.\E:\System Volume Information\DFSR\database_C8CC_101_CC00_EC0E\
dfsr.db: A request to write to the file "\\.\E:\System Volume Information\
DFSR\database_C8CC_101_CC00_EC0E\fsr.log" at offset 4423680 (0x0000000000438000)
for 4096 (0x00001000) bytes has not …Run Code Online (Sandbox Code Playgroud) 我有一个在 Windows Server 2008 R2 x64 机器上运行的 PostgreSQL。我已经安排了每天从 RAID 1 DB 磁盘到专用独立磁盘的备份。它们是 Dell PERC 6i 上的 SAS 15k。我正在使用内置的 Windows Server Backup。
问题是,无论何时启动备份过程,数据库性能都会受到影响。我会说性能降低了近 10 倍。
从资源监视器看,备份时磁盘队列在两位数范围内,白天小于1。备份期间磁盘活动约为 30-50MB/s,所以我猜硬件运行正常,尽管 wbengine.exe 占据了大部分部分。
我认为降低备份过程的 IO 优先级将是一个答案,但我找不到办法。调整进程 CPU 优先级似乎没有帮助。
iotop 未显示的磁盘上可能会写入什么内容?
# iotop -a
Total DISK READ: 8.19 M/s | Total ****DISK WRITE: 3.34 M/s****
TID PRIO USER DISK READ DISK WRITE> SWAPIN IO COMMAND
428 be/4 root 0.00 B 84.00 K 0.00 % 0.02 % [kjournald]
2600 be/3 root 0.00 B 8.00 K 0.00 % 0.01 % auditd -s disable
2582 be/4 root 0.00 B 4.00 K 0.00 % 0.00 % syslog-ng
Run Code Online (Sandbox Code Playgroud)
(iotop 不使用 -o 运行)
你如何解释这一点?
# iostat
Linux 3.0.51-0.7.9-default (x) 03/10/13 _x86_64_
avg-cpu: %user %nice %system …Run Code Online (Sandbox Code Playgroud) 我需要从我的服务服务器中检索一些指标来对另一个存储解决方案进行基准测试。基准程序提供了各种选项(我选择了 FIO,http: //freecode.com/projects/fio )。我可以很容易地用它设置 io 模式。但我不知道如何检索真实服务的指标以尽可能真实地设置基准变量。
例如,我需要设置,
我目前正在测试 ceph( http://ceph.com/ ),至少上述指标似乎对我的研究中的那种存储产生了重大影响。我如何检索这些值?
collectcl( http://collectl.sourceforge.net/ ) 看起来不错。但除了读/写比率之外,无法弄清楚。除了那些东西我想不通。我真的很想知道其他人是如何决定这些基准变量的。
提前致谢。
在写入/读取本地 SSD 存储时,如何确定我的 Windows Server 2012 在何处使用随机或顺序 I/O 操作?
我被要求向我们的硬件供应商提供有关服务器使用情况的详细信息,以便调整服务器的性能。他们想知道我们使用的是随机还是顺序。服务器正在运行 SQL Server 2012。我希望能够编译一些显示各种 I/O 操作的统计数据和/或日志,以确定我们是使用随机还是顺序 I/O 以及每种使用的数量和时间。我想这可以通过一些性能监视器计数器或一些其他类型的跟踪事件来完成。我希望这能更好地解释情况。
我在带有 PERC H700 RAID 控制器的戴尔服务器上运行 CentOS 7(XFS 文件系统)。在这台服务器中,我有 6 个三星 850 Evo 250GB SSD(是的,它们是消费类驱动器,但是,这是一台家用服务器。无论如何,我进行了 DD 测试,获得了大约 550MB/s 的速度,这将是近似写入单个 SSD 的速度,但这些驱动器处于 RAID 10 中......人们会期待更多。
写测试的输出:
[root@localhost] sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.95942 s, 548 MB/s
Run Code Online (Sandbox Code Playgroud)
读取测试的输出:
[root@localhost]# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.171463 s, 6.3 GB/s
Run Code Online (Sandbox Code Playgroud)
任何人都可以说明这种情况是否是可接受的写入速度?我对在这里做什么感到很困惑。感谢你的帮助 :)
我正在从磁盘顺序读取一个大文件,并试图在读取过程中理解 iostat 输出。
iostat输出如下
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 833.00 14.00 103.88 0.05 251.30 6.07 5.69 2.33 205.71 1.18 100.00
Run Code Online (Sandbox Code Playgroud)
计算 I/O 请求的平均大小 =(rMB/s 除以 r/s)给出 ~ 128 KB,这是预读值。这似乎表明虽然 read 系统调用指定了 4KB 缓冲区,但实际磁盘 I/O 正在根据预读值发生。
当我将预读值增加到 256KB 时,iostat 输出如下
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 28.00 412.00 12.00 102.50 0.05 495.32 …Run Code Online (Sandbox Code Playgroud)