Maison base de données tutoriel mysql DB2内存使用过高优化

DB2内存使用过高优化

Jun 07, 2016 pm 04:07 PM
db2 oracle 数据库

最近在在做DB2的benchmark,发现数据库的内存占用特别高,因为是做benchmark测试,所以表并不多,并且主要是针对其中的一张表做测

最近在在做DB2的benchmark,发现数据库的内存占用特别高,因为是做benchmark测试,所以表并不多,并且主要是针对其中的一张表做测试,当这张表的数据快到1亿的时候,用top查询系统状态如下

# top
top - 20:06:34 up 5 days, 22:20, 12 users, load average: 18.53, 6.57, 3.19
...
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32458 db2inst 20 0 42.3g 27g 27g S 63.7 44.3 0:27.13 db2sysc 0
...

其中db2sync进程用了27G的内存,从而导致系统物理内存几乎被用光并且系统也变的非常慢。 

使用db2mtrk命令来查看db2的内存使用情况,如下:

# db2mtrk -i -d -v
Tracking Memory on: 2014/06/22 at 21:50:19

Memory for instance

 Other Memory is of size 63111168 bytes
 FCMBP Heap is of size 851968 bytes
 Database Monitor Heap is of size 983040 bytes
 Total: 64946176 bytes

Memory for database: PA913

 Backup/Restore/Util Heap is of size 65536 bytes
 Package Cache is of size 262144 bytes
 Other Memory is of size 196608 bytes
 Catalog Cache Heap is of size 262144 bytes
 Buffer Pool Heap (1) is of size 24465047552 bytes
 Buffer Pool Heap (System 32k buffer pool) is of size 1835008 bytes
 Buffer Pool Heap (System 16k buffer pool) is of size 1572864 bytes
 Buffer Pool Heap (System 8k buffer pool) is of size 1441792 bytes
 Buffer Pool Heap (System 4k buffer pool) is of size 1376256 bytes
 Shared Sort Heap is of size 0 bytes
 Lock Manager Heap is of size 3881172992 bytes
 Database Heap is of size 94830592 bytes
 Application Heap (47) is of size 131072 bytes
 Application Heap (45) is of size 65536 bytes
 Application Heap (44) is of size 65536 bytes
 Application Heap (43) is of size 65536 bytes
 Application Heap (42) is of size 65536 bytes
 Application Heap (41) is of size 65536 bytes
 Application Heap (40) is of size 65536 bytes
 Application Heap (39) is of size 65536 bytes
 Application Heap (38) is of size 65536 bytes
 Application Heap (37) is of size 65536 bytes
 Application Heap (36) is of size 65536 bytes
 Application Heap (35) is of size 65536 bytes
 Application Heap (34) is of size 65536 bytes
 Application Heap (33) is of size 65536 bytes
 Application Heap (32) is of size 65536 bytes
 Application Heap (31) is of size 65536 bytes
 Application Heap (30) is of size 65536 bytes
 Application Heap (29) is of size 65536 bytes
 Application Heap (28) is of size 65536 bytes
 Application Heap (27) is of size 65536 bytes
 Application Heap (26) is of size 65536 bytes
 Application Heap (25) is of size 65536 bytes
 Application Heap (24) is of size 65536 bytes
 Application Heap (23) is of size 65536 bytes
 Application Heap (22) is of size 65536 bytes
 Application Heap (21) is of size 65536 bytes
 Application Heap (20) is of size 65536 bytes
 Application Heap (19) is of size 65536 bytes
 Application Heap (18) is of size 65536 bytes
 Application Heap (17) is of size 65536 bytes
 Application Heap (16) is of size 65536 bytes
 Application Heap (15) is of size 65536 bytes
 Application Heap (14) is of size 65536 bytes
 Application Heap (13) is of size 65536 bytes
 Application Heap (12) is of size 65536 bytes
 Application Heap (11) is of size 196608 bytes
 Application Heap (10) is of size 65536 bytes
 Application Heap (9) is of size 65536 bytes
 Application Heap (8) is of size 65536 bytes
 Application Heap (7) is of size 131072 bytes
 Applications Shared Heap is of size 393216 bytes
 Total: 28451340288 bytes

其中重点是“Memory for database: PA913”下的“Buffer Pool Heap (1) is of size 24465047552 bytes”,用了近25G的内存,由于我确定我的数据库中的数据量不是很大,所以减少数据库内存就是我的首选了。 

查了一下资料,可以通过修改database_memory系统参数来设置数据库内存的使用。默认情况下database_memory的设置是AUTOMATIC,这里可以通过下面的命令来修改参数,,修改完后要重新启动db2

$ db2 update db cfg for using database_memory 8000000
$ db2stop force
$ db2start

数据库重启后,先用客户端连接一下数据库,然后再使用“db2mtrk -i -d -v”查看内存使用情况,就发现内存就会有明显的下降。用top查看结果也类似。

在真实的DB2使用情况下,修改这个值是需要慎重的,可以参考下面列出的参考资料。

本文永久更新链接地址:

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

MySQL: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Comment résoudre le problème de la fermeture d'Oracle Cursor Comment résoudre le problème de la fermeture d'Oracle Cursor Apr 11, 2025 pm 10:18 PM

La méthode pour résoudre le problème de fermeture du curseur Oracle comprend: la fermeture explicite du curseur à l'aide de l'instruction Close. Déclarez le curseur dans la clause de mise à jour pour la fermeture automatiquement après la fin de la portée. Déclarez le curseur dans la clause d'utilisation afin qu'il se ferme automatiquement lorsque la variable PL / SQL associée est fermée. Utilisez la gestion des exceptions pour vous assurer que le curseur est fermé dans toute situation d'exception. Utilisez le pool de connexion pour fermer automatiquement le curseur. Désactiver la soumission automatique et le délai de fermeture du curseur.

Comment créer Oracle Dynamic SQL Comment créer Oracle Dynamic SQL Apr 12, 2025 am 06:06 AM

Les instructions SQL peuvent être créées et exécutées en fonction de l'entrée d'exécution en utilisant Dynamic SQL d'Oracle. Les étapes comprennent: la préparation d'une variable de chaîne vide pour stocker des instructions SQL générées dynamiquement. Utilisez l'instruction EXECUTER IMMÉDIATE OU PRÉPEPART pour compiler et exécuter les instructions SQL dynamiques. Utilisez la variable Bind pour passer l'entrée utilisateur ou d'autres valeurs dynamiques à Dynamic SQL. Utilisez EXECUTER immédiat ou exécuter pour exécuter des instructions SQL dynamiques.

Comment créer des curseurs dans Oracle Loop Comment créer des curseurs dans Oracle Loop Apr 12, 2025 am 06:18 AM

Dans Oracle, la boucle pour la boucle pour créer des curseurs dynamiquement. Les étapes sont: 1. Définissez le type de curseur; 2. Créez la boucle; 3. Créez le curseur dynamiquement; 4. Exécuter le curseur; 5. Fermez le curseur. Exemple: un curseur peut être créé de cycle par circuit pour afficher les noms et salaires des 10 meilleurs employés.

Que faire si l'oracle ne peut pas être ouvert Que faire si l'oracle ne peut pas être ouvert Apr 11, 2025 pm 10:06 PM

Les solutions à Oracle ne peuvent pas être ouvertes comprennent: 1. Démarrer le service de base de données; 2. Commencez l'auditeur; 3. Vérifiez les conflits portuaires; 4. Définir correctement les variables d'environnement; 5. Assurez-vous que le pare-feu ou le logiciel antivirus ne bloque pas la connexion; 6. Vérifiez si le serveur est fermé; 7. Utilisez RMAN pour récupérer les fichiers corrompus; 8. Vérifiez si le nom du service TNS est correct; 9. Vérifier la connexion réseau; 10. Réinstaller le logiciel Oracle.

Comment lire le rapport Oracle AWR Comment lire le rapport Oracle AWR Apr 11, 2025 pm 09:45 PM

Un rapport AWR est un rapport qui affiche les performances de la base de données et les instantanés d'activité. Les étapes d'interprétation comprennent: l'identification de la date et de l'heure de l'instantané d'activité. Consultez un aperçu des activités et de la consommation de ressources. Analyser les activités de session pour trouver des types de session, la consommation de ressources et les événements d'attente. Trouvez des goulots d'étranglement potentiels de performance tels que des instructions SQL lentes, des problèmes de ressources et des problèmes d'E / S. Affichez les événements d'attente, identifiez-les et résolvez-les pour les performances. Analyser les modèles d'utilisation des verrous et de la mémoire pour identifier les problèmes de mémoire qui causent des problèmes de performances.

Comment utiliser les déclencheurs pour Oracle Comment utiliser les déclencheurs pour Oracle Apr 11, 2025 pm 11:57 PM

Les déclencheurs d'Oracle sont des procédures stockées utilisées pour effectuer automatiquement des opérations après un événement spécifique (insérer, mettre à jour ou supprimer). Ils sont utilisés dans une variété de scénarios, notamment la vérification des données, l'audit et la maintenance des données. Lors de la création d'un déclencheur, vous devez spécifier le nom de déclenchement, la table d'association, l'événement de déclenchement et le temps de déclenchement. Il existe deux types de déclencheurs: le déclencheur avant est tiré avant l'opération, et le déclencheur après est tiré après l'opération. Par exemple, le déclencheur avant l'insertion garantit que la colonne d'âge de la ligne insérée n'est pas négative.

See all articles