찾다
데이터 베이스MySQL 튜토리얼突破Informix固态磁盘I/O瓶颈

至今为止,我在固态硬盘 (SSD) 上成功运行主 Informix 开发数据库服务器的时间已经超过一年。我的开发服务器配备 12 枚 CPU 内核、24 GB 的 RAM、5 TB 磁盘空间和一块 512 GB 的固态硬盘。我使用这台服务器开发了 Informix 数据仓库项目,并对 OLTP 版本执行

至今为止,我在固态硬盘 (SSD) 上成功运行主 Informix 开发的时间已经超过一年。我的开发配备 12 枚 CPU 内核、24 GB 的 RAM、5 TB 磁盘空间和一块 512 GB 的固态硬盘。我使用这台服务器开发了 Informix 数据仓库项目,并对 OLTP 版本执行了基准测试。去年购买这台服务器之后,我开始尝试使用 SSD。我将主 Informix 空间从一对镜像的磁盘驱动器迁移到了 SSD。我对两个 Informix 服务器都执行了测试:一个是 11.50 版本,另一个是 11.70 版本。两个版本在 SSD 上运行时的速度都有所提升。我使用了到数据库空间的链接,因此可以将空间在常规磁盘驱动器与 SSD 之间来回复制、重置链接并启动服务器,以便测试性能。SSD 的性能要好得多,我完全不希望再回头使用旧的磁盘驱动器。SSD 的稳定性非常出色,所以我推荐对关键生产系统使用 SSD。

多年以来,磁盘驱动器一直是数据库性能瓶颈。磁盘空间越来越大,人们不断在其中存储越来越多的数据,但磁盘驱动器的速度并没有提升。随着磁盘中数据量的增加,吞吐量也成为严重问题。典型情况下,加速磁盘 I/O 的最好方法就是将数据分布到多块磁盘驱动器上,在每个磁盘中都存储较少的数据库。SSD 改变了一切,我认为磁盘驱动器将来会像磁带驱动器一样走向没落。所有人都会在 SSD 上运行程序,磁盘驱动器将仅用作备份介质。在笔记本电脑、台式机和服务器数列中,SSD 的出现频率越来越高。

混合磁盘系统是一种有趣的发明,它将 SSD 与传统硬盘结合使用。部分供应商提供的数列将 SSD 作为一批传统磁盘驱动器的智能缓存。其思路在于,将所有数据页面都存储在传统磁盘驱动器中,而最常用的数据页面则缓存在 SSD 中。我的一位客户使用此类数列获得了极大的成功,实现了显著的性能提升。其他混合趋势包括将 SSD 直接与大容量磁盘驱动器配对,将它们作为磁盘缓存。Seagate 和 OCZ 均推出了混合式磁盘驱动器或磁盘卡。虽然混合的方法能提高性能,但不如纯 SSD 速度快。我认为这只是一些临时措施,最终 SSD 的成本将降低,性价比也将提高。随着 SSD 产量的增加,成本的降低,混合方法将不再必要。

设置基准测试

为了撰写这篇文章,我决定从头开始,执行基准测试来测量 SSD 能提供的性能改进。我想执行压力测试,测量顺序读取、批量顺序读取和随机读取与写入的性能。我重新安装了最新版本的 Informix 11.70 FC4,用全新的安装和脚本从头开始制作我的 Informix 环境。每次测试都使用相同的 ONCONFIG 文件,我通过更改 Informix 磁盘空间的链接在传统磁盘驱动器与 SSD 之间切换。我使用的传统磁盘驱动器是当今大多数生产系统中常见的高速镜像对。图 1 的表格中显示了结果。

基准测试 镜像磁盘设备 SSD 磁盘设备 提高的百分比
1. 配置 Dbspace 和日志 47 分钟 24.986 秒 30 分钟 38.419 秒 64.60
2. 导入数据库 82 分钟 18.984 秒 67 分钟 40.300 秒 82.20
3. 基准测试 2:批量计费作业 3 分钟 21.258 秒 2 分钟 35.227 秒 77.11
4. 基准测试 4:具有 1,000 个用户的 OLTP 5,272 tpmC 116,849 tpmC 2,216.41
5. 数据仓库查询基准测试 4 小时 19 分钟 3 小时 14 分钟 74.90
平均总体提高     503.05

突破Informix固态磁盘I/O瓶颈

图 1:SSD 与 磁盘驱动器基准测试结果对比

下面介绍了各基准测试的测试任务。

1. 配置 Dbspace 和日志 第一项测试测量创建所有 dbspace 和所有逻辑日志花费的时间,并将物理日志移动到独立的 dbspace 中,然后重建基准测试环境。将 Informix 设置为执行直接 I/O,并在两项测试中使用成熟的文件。过去,我直接在 SSD 与传统磁盘驱动器之间复制 dbspace;这次测试在两个系统中重建了整个环境。

2. 导入数据库 下一项任务是执行各配置中使用的各数据库的 dbimport。该任务将对驱动器的写入性能执行压力测试。

3. 基准测试 2:批量计费作业 2009 年,IIUG Informix User Conference 的 Fastest DBA 大赛中执行的就是这项基准测试——过去,我曾在文章中介绍过这一基准测试。测试的目标是磁盘 I/O,因此我并未优化 SQL 来减少读写数量。

4. 基准测试 4:具有 1,000 个用户的 OLTP 这是 2011 IIUG Informix User Conference 的 Fastest Informix DBA 大赛中使用的基准测试。Advanced DataTools 为大赛提供赞助,寻找和奖励速度最快的 Informix DBA。此次大赛是过去三届 Informix 会议中最有趣的活动之一。 测试使用 Open Source BenchmarkSQL Java 程序,生成了 1,000 个会话,对一个 Informix 数据库执行插入、更新和删除操作。Open Source BenchmarkSQL 是一项 JDBC 基准测试,与 TPC-C 的 OLTP 标准极其接近。在大赛中,参赛者需要处理运行 1,000 个 OLTP 用户的 Informix 服务器,在一个小时内对其进行优化,然后评选出谁能实现最高的每分钟事务处理量。由于这属于执行读取和写入操作的随机 I/O 测试,因此会对磁盘驱动器的随机 I/O 功能进行压力测试。SSD 在这次测试中表现最佳,每分钟执行的事务处理量是传统磁盘驱动器的 2,216%。

5. 数据仓库查询基准测试 这是我开发的一个新基准测试,用于测试数据仓库性能。SSD 容量最高为 512 GB,因此我使用一个较小的数据库,运行了 18 个复杂的数据仓库查询。大多数查询需要对一个事实表进行顺序扫描,以获得相关结果,因此可以通过该操作对驱动器的读取访问进行压力测试。

关键考虑事项

在将 Informix dbspace 迁移到 SSD 的过程中,您还需要考虑可能存在磁盘 I/O 瓶颈的其他方面。在数据仓库基准测试中,我初次迁移到 SSD 时并未如期获得出色的性能。受磁盘 I/O 性能影响的另外两个因素是查询报告的临时排序空间和输出空间。将报告的临时空间和输出空间迁移到 SSD 之后,性能获益非常明显。实际上,将 Informix temp dbspace 迁移到 SSD 或许是利用这项新技术的最快方法,同时还能保证不需要重新配置整个服务器。

我与其他管理大型图像处理系统(例如影片制作)的管理员讨论了 SSD 技术。这些系统需要接近实时地访问庞大的图像文件。这些管理员已经成功构建了包含 6 到 8 块 SSD 的 RAID-10 数列。根据他们的报告,RAID-10 的数据镜像与条带化能够提高安全性,还能提高 SSD 原本已经非常出众的性能。我非常希望使用 Informix 数据库亲身体验一下这样的改进。

有关 SSD 的担忧之一就是其作为新技术的可靠性。对我来说,一块 SSD 使用了整整一年,而且完全没有出现过任何问题。而在相同的时间段内,我的三块普通硬盘都发生了故障。任何介质都必然会发生故障,因此最好始终计划备份解决方案。所有磁盘驱动器都需要定期备份。如果我使用 SSD 设计一个新的生产级 Informix 数据库服务器,我会在常规磁盘驱动器上创建一个 Informix 高可用性远程辅助服务器 (RSS) 作为备用系统。这是任何生产数据库服务器的最佳实践。

结束语

在所有数据库中,SSD 都能更快地完成 Informix 数据库任务。在顺序扫描、随机 I/O 和读取与写入中,SSD 的表现始终遥遥领先。SSD 极大地提升了 OLTP 随机磁盘 I/O 基准测试的性能。图 1 中的数字能证明一切。一言以蔽之,提高 Informix 数据库服务器速度最便捷的方法就是将 dbspaces 迁移到 SSD 中。Informix 在 SSD 上的运行表现良好。

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL : 초보자가 마스터하는 필수 기술MySQL : 초보자가 마스터하는 필수 기술Apr 18, 2025 am 12:24 AM

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL : 구조화 된 데이터 및 관계형 데이터베이스MySQL : 구조화 된 데이터 및 관계형 데이터베이스Apr 18, 2025 am 12:22 AM

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 ​​간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL : 주요 기능 및 기능이 설명되었습니다MySQL : 주요 기능 및 기능이 설명되었습니다Apr 18, 2025 am 12:17 AM

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다Apr 18, 2025 am 12:12 AM

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

초보자를위한 MySQL : 데이터베이스 관리를 시작합니다초보자를위한 MySQL : 데이터베이스 관리를 시작합니다Apr 18, 2025 am 12:10 AM

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

MySQL의 역할 : 웹 응용 프로그램의 데이터베이스MySQL의 역할 : 웹 응용 프로그램의 데이터베이스Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL : 첫 번째 데이터베이스 구축MySQL : 첫 번째 데이터베이스 구축Apr 17, 2025 am 12:22 AM

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식Apr 17, 2025 am 12:21 AM

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전