突破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 |
图 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 上的运行表现良好。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Préface Les données stockées dans les variables, tableaux et objets sont temporaires et seront perdues une fois le programme terminé. Afin de pouvoir sauvegarder définitivement les données créées, elles doivent être enregistrées dans des fichiers disque afin qu'elles puissent être utilisées dans d'autres programmes. La technologie d'E/S de Java peut enregistrer les données dans des fichiers texte, des fichiers binaires et même des fichiers compressés ZIP, répondant ainsi aux exigences de stockage permanent des données. La maîtrise de la technologie de traitement des E/S peut améliorer les capacités de traitement des données. 1. Présentation du flux Un flux est un ensemble de séquences de données ordonnées. Selon le type d'opération, il peut être divisé en deux types : flux d'entrée et flux de sortie. Le flux E/S (Entrée/Sortie) fournit un programme de canal qui peut être utilisé pour envoyer une séquence d'octets de la source à la destination.

Explorer les problèmes de performances de Laravel : analyser les goulots d'étranglement et les solutions ! Laravel est un framework PHP populaire qui aide les développeurs à créer des applications Web plus efficacement grâce à sa syntaxe élégante et intuitive et à sa boîte à outils riche en fonctionnalités. Cependant, à mesure que la taille de l'application et le nombre de visites augmentent, des problèmes de performances peuvent survenir, affectant l'expérience utilisateur et la stabilité du système. Cet article explorera les goulots d'étranglement de performances courants dans les applications Laravel, ainsi que certaines méthodes pour résoudre ces problèmes. 1. Goulot d'étranglement des performances des requêtes dans l'application Laravel

♒Principe du flux d'E/S et classification du flux Principe d'E/S I/O est l'abréviation de la technologie d'entrée et de sortie est une technologie très pratique utilisée pour traiter la transmission de données (telle que : lecture/écriture de fichiers, communication réseau). Dans les programmes Java, les opérations d'entrée/sortie de données sont effectuées sous forme de flux. Le package java.io fournit diverses classes et interfaces de flux pour obtenir différents types de données et les saisir via des méthodes et des données de sortie. Flux de fichiers : Les fichiers sont exploités sous forme de flux dans les programmes. Flux d'entrée : Le chemin des données de la source de données (fichier) au programme (mémoire). Flux de sortie : Le chemin des données du programme (mémoire) au programme. source de données (fichier). Les flux d’E/S sont classés selon l’unité de données d’opération : flux d’octets.

Les performances ont toujours été un problème extrêmement important dans le développement moderne de sites Web et d’applications. Alors que les demandes des utilisateurs en matière de chargement rapide et de réactivité continuent d’augmenter, les développeurs doivent accorder une attention particulière aux aspects d’optimisation des performances. Pour les développeurs développant avec le framework Laravel, il est crucial d'optimiser les performances de leurs applications pour éviter les goulots d'étranglement courants. Cet article explorera certains éléments auxquels il faut prêter attention lors du développement de Laravel pour aider les développeurs à éviter les problèmes de performances courants. Utiliser des index de base de données appropriés dans Larave

Comment optimiser les goulots d'étranglement des performances dans le développement C++ Résumé : Dans le développement C++, les goulots d'étranglement des performances sont un problème courant. Cet article explique comment identifier et résoudre les goulots d'étranglement des performances dans le développement C++, et fournit des conseils et des suggestions d'optimisation. Introduction C++ est un langage de programmation puissant largement utilisé pour développer des applications hautes performances. Cependant, dans le processus de développement C++, les problèmes de performances sont souvent source de problèmes. Les goulots d'étranglement des performances peuvent ralentir l'exécution d'une application, consommer davantage de ressources ou produire des résultats inattendus. Par conséquent, optimiser les performances des bouteilles

Le langage Go est un langage de programmation spécialement conçu pour la programmation simultanée. Il se caractérise par sa légèreté, sa facilité d'apprentissage et sa puissance. Afin de prendre en charge un grand nombre d'opérations simultanées, le langage Go fournit un mécanisme de réutilisation des E/S, qui peut réduire efficacement la surcharge du système et améliorer l'efficacité du programme. Le mécanisme de multiplexage d'E/S, également appelé technologie de multiplexage, est une technologie qui peut surveiller plusieurs descripteurs de fichiers en même temps et attendre qu'un ou plusieurs descripteurs de fichiers génèrent des événements lisibles, inscriptibles ou anormaux. Il peut réduire la consommation du système. ressources pendant l’exécution et améliorer l’efficacité du programme. En langage Go

Le développement Python est un langage de programmation efficace et populaire qui peut aider les développeurs à créer rapidement des applications. Cependant, pendant le développement, nous devons prêter attention à certains goulots d'étranglement courants en matière de performances pour garantir que notre code s'exécute efficacement. Cet article mettra en évidence certains goulots d’étranglement courants en matière de performances et les moyens de les éviter. Tout d’abord, Python est un langage interprété, et sa vitesse d’exécution sera plus lente que celle des langages compilés. Par conséquent, pendant le développement, nous devons minimiser les calculs et les boucles inutiles pour améliorer l’efficacité de l’exécution du code.

Titre : Briser le goulot d'étranglement des tableaux Java : un outil puissant pour maîtriser les méthodes courantes Texte : Avec le développement continu de la technologie informatique, le traitement des données est devenu un élément indispensable dans divers domaines. Dans le langage Java, les tableaux constituent l'une des structures de données les plus élémentaires et sont largement utilisés dans divers algorithmes et programmes. Cependant, pour le traitement de données à grande échelle, les baies Java traditionnelles présentent certains goulots d'étranglement en termes de performances et d'efficacité. Cet article présentera quelques méthodes pour éliminer le goulot d'étranglement des tableaux Java et donnera des exemples de code spécifiques. UtiliserArrayLi
