<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dbnewz &#187; benchmarks</title>
	<atom:link href="http://www.dbnewz.com/tag/benchmarks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dbnewz.com</link>
	<description>le blog français sur les SGBD - MySQL, Oracle et plus...</description>
	<lastBuildDate>Wed, 28 Jul 2010 14:01:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Les SSD (Solid-State Drive) : une technologie d&#8217;avenir pour nos SGBD ?</title>
		<link>http://www.dbnewz.com/2008/05/13/les-ssd-solid-state-drive-une-technologie-davenir-pour-nos-sgbd/</link>
		<comments>http://www.dbnewz.com/2008/05/13/les-ssd-solid-state-drive-une-technologie-davenir-pour-nos-sgbd/#comments</comments>
		<pubDate>Tue, 13 May 2008 06:12:34 +0000</pubDate>
		<dc:creator>arnaud</dc:creator>
				<category><![CDATA[IBMDB2]]></category>
		<category><![CDATA[MSSQL]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[hardware]]></category>

		<guid isPermaLink="false">http://www.dbnewz.com/2008/05/13/les-ssd-solid-state-drive-une-technologie-davenir-pour-nos-sgbd/</guid>
		<description><![CDATA[Modifier une petite ligne dans le fichier de configuration de son SGBD et obtenir les performances souhaitées, c&#8217;est possible&#8230; si vous êtes chanceux. La performance globale d&#8217;un SGBD repose en effet sur un ensemble de briques, logicielles ou matérielles, qui une fois empilées correctement forment un ensemble cohérent (et performant) : la seule étape du [...]]]></description>
			<content:encoded><![CDATA[<p>Modifier une petite ligne dans le fichier de configuration de son SGBD et obtenir les performances souhaitées, c&#8217;est possible&#8230; si vous êtes chanceux. La performance globale d&#8217;un SGBD repose en effet sur un ensemble de briques, logicielles ou matérielles, qui une fois empilées correctement forment un ensemble cohérent (et performant) : la seule étape du fichier de configuration ne suffit pas.</p>
<p>Dans un de ses <a href="http://www.bigdbahead.com/?p=49" target="_blank">récents billets</a>, Matt Yonkovit a déclenché une série de <a href="http://www.mysqlperformanceblog.com/2008/04/25/is-disk-everything-for-mysql-performance/" target="_blank">réflexions intéressantes</a> à propos de l&#8217;impact des performances des disques durs sur l&#8217;ensemble du SGBD.</p>
<p>Selon lui, les problèmes de performance au sein d&#8217;un SGBD sont la plupart du temps relatifs aux disques durs et notamment au nombre d&#8217;I/O (Entrées/Sorties) qu&#8217;ils sont capables de traiter par seconde (IOPS).</p>
<p>Comparés aux processeurs actuels capables de prendre plusieurs milliards de décisions par seconde (Ghz) et aux mémoires vives dont les temps d&#8217;accès se mesurent en nanosecondes, le temps d&#8217;accès d&#8217;un disque dur se compte encore en millisecondes&#8230; Difficile de lutter contre des éléments purement électroniques quand on est constitué d&#8217;éléments mécaniques en mouvement (têtes de lecture, plateaux&#8230;).</p>
<p><span id="more-37"></span></p>
<p>Afin d&#8217;avoir recours le moins possible aux disques, l&#8217;utilisation des index est une première étape qu&#8217;on complètera par différents mécanismes de caching afin de limiter encore davantage les accès à ce support et éviter ainsi que le disque ne constitue un goulet d&#8217;étranglement (&laquo;&nbsp;I/O bound&nbsp;&raquo;).</p>
<p>Outre ces mécanismes, la technologie SSD pourrait bien à l&#8217;avenir changer la donne.</p>
<p>Les SSD, littéralement <a title="Open HDD and SSD" href="http://en.wikipedia.org/wiki/Image:Open_HDD_and_SSD.JPG" target="_blank">Solid-State Drives</a> (ou Disk par abus de langage), ne sont pas des  disques mais des unités de stockage constituées de mémoire flash (persistante).</p>
<p>Au vu des benchmarks les concernant, il y&#8217;a fort à parier que les SSD seront de plus en plus d&#8217;actualité dans les mois qui viennent.<br />
Ces <a href="http://www.bigdbahead.com/?p=44" target="_blank">benchmarks </a>sont unanimes sur un point : les SSD obtiennent d&#8217;excellentes performances lors des random read, laissant loin derrière les disques &laquo;&nbsp;classiques&nbsp;&raquo;. Grosse ombre au tableau néanmoins : les tests effectués sur des random write ne sont pas aussi concluants. Pourquoi ?</p>
<p>Sur un disque classique un &laquo;&nbsp;random read&nbsp;&raquo; entraîne (du plus couteux au moins couteux) :<br />
- le déplacement de la tête de lecture/écriture sur la bonne piste (&laquo;&nbsp;seek time&nbsp;&raquo;)<br />
- une fois la tête sur la bonne piste, il faut encore repérer sur celle-ci le bloc secteur demandé (&laquo;&nbsp;rotational latency&nbsp;&raquo;)<br />
- la lecture et la transmission de la donnée vers le système.</p>
<p>Avec un SSD, le même &laquo;&nbsp;random read&nbsp;&raquo; est beaucoup plus rapide : pas de tête de lecture à déplacer ni d&#8217;attente liée à la rotation d&#8217;un plateau. Conclusion, comptez environ 5 ms de temps d&#8217;accès à un secteur particulier pour un disque performant et environ 0.15 ms pour un SSD.</p>
<p>En revanche, lors d&#8217;une écriture, le SSD est par conception beaucoup plus lent qu&#8217;en lecture : la &laquo;&nbsp;préparation&nbsp;&raquo; obligatoire de l&#8217;importante zone dédiée à l&#8217;écriture (&laquo;&nbsp;erase block&nbsp;&raquo;) et un <a href="http://managedflash.com/technology/problem.htm" target="_blank">ensemble d&#8217;écritures spécifique</a> à cette technologie pénalisent les performances.</p>
<p>Face à ce problème connu, des parades logicielles voient le jour et la plupart des constructeurs de SSD proposeront sûrement leur propre solution dans les mois à venir. Actuellement <a href="http://managedflash.com/what/index.htm" target="_blank">la technologie MFT</a> (Managed Flash Technology) offre déjà de grandes améliorations (cf lien &laquo;&nbsp;benchmarks&nbsp;&raquo; ci-dessus, 3ème graphique). Les performances obtenues sont sensiblement égales lors des random read par rapport aux SSD classiques mais les résultats sont 30x supérieurs en random write par rapport aux SSD et 15x supérieurs aux disque durs.</p>
<p>Enfin, un autre signe que le SSD est très certainement une technologie d&#8217;avenir : un des plus récents moteurs pour MySQL, <a href="http://www.primebase.org/" target="_blank">PBXT</a>, est <a href="http://assets.en.oreilly.com/1/event/2/Inside%20the%20PBXT%20Storage%20Engine%20Presentation.pdf" target="_blank">conçu pour fonctionner avec les SSD</a> (pdf).</p>
<p>Pour résumer, concernant les SSD :</p>
<p>Avantages :<br />
- Très rapide en random read<br />
- Peu sensible à la fragmentation des fichiers : performances constantes.<br />
- Fiabilité supérieure au HD (pas d&#8217;éléments mécaniques en mouvement)</p>
<p>Inconvénients des SSD :<br />
- Prix<br />
- Capacités en deça des disques actuels<br />
- Durée de vie plus courte qu&#8217;un disque (nombres de cycles d&#8217;écriture limités)</p>
<p>Améliorations attendues (et en cours) :<br />
- Chute des prix<br />
- Augmentation des performances en écriture<br />
- Augmentation de la capacité<br />
- Meilleure répartition des écritures sur le support (augmentation du nombre de cycles écritures / durée de vie)</p>
<p>Si cette rapide présentation des SSD a aiguisé votre curiosité, voici quelques pistes pour aller plus loin  :<br />
- <a href="http://feedblog.org/category/ssd/" target="_blank">Le blog</a> de Kevin Burton.<br />
- <a href="http://en.wikipedia.org/wiki/Solid-state_drive" target="_blank">La rubrique SSD</a> sur Wikipédia (notamment les références en bas de page).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbnewz.com/2008/05/13/les-ssd-solid-state-drive-une-technologie-davenir-pour-nos-sgbd/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Réplication et Log binaires</title>
		<link>http://www.dbnewz.com/2007/04/06/replication-et-log-binaires/</link>
		<comments>http://www.dbnewz.com/2007/04/06/replication-et-log-binaires/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 20:58:43 +0000</pubDate>
		<dc:creator>pébé</dc:creator>
				<category><![CDATA[4.1]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[réplication]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[pratique]]></category>

		<guid isPermaLink="false">http://www.dbnewz.com/2007-04/4-replication-et-log-binaires.htm</guid>
		<description><![CDATA[Qui n&#8217;a jamais utilisé MySQL sans la réplication? La réplication permet à votre application de supporter un nombre de lecture beaucoup plus important. Les updates se font sur une base de donnée &#171;&#160;maître&#160;&#187; (master) et sont ensuite répliquées sur plusieurs &#171;&#160;esclaves&#160;&#187; (slaves). Le maître n&#8217;a pas à supporter les requêtes venant de clients qui sont [...]]]></description>
			<content:encoded><![CDATA[<p>Qui n&#8217;a jamais utilisé MySQL sans la réplication? La réplication permet à votre application de supporter un nombre de lecture beaucoup plus important. Les updates se font sur une base de donnée &laquo;&nbsp;maître&nbsp;&raquo; (master) et sont ensuite répliquées sur plusieurs &laquo;&nbsp;esclaves&nbsp;&raquo; (slaves). Le maître n&#8217;a pas à supporter les requêtes venant de clients qui sont gérées par les esclaves. Un autre jour je rentrerai plus en détails la dessus mais en résumé, le maître écrit dans des fichiers toutes les requêtes qui ont modifié ses informations (insert, update et delete). Les slaves viennent à leur tour récupérer ces fichiers (binary logs) et les &laquo;&nbsp;copie&nbsp;&raquo; localement (relay logs) avant de les rejouer.</p>
<p>Il est conseillé en général de dédier un disque pour ces fichiers car beaucoup d&#8217;écriture entraîne une baisse de vos performances. Dans le cas qui nous intéresse, l&#8217;activité du CPU m&#8217;a très étonné. En effet jusqu&#8217;à 60% du temps CPU étaient utilisé par &#8216;USER&#8217; juste en activant la réplication.<br />
<span id="more-4"></span><br />
Suite à cela j&#8217;ai décidé avec mon ami Laurent de faire un peu de profiling&#8230; sommes nous un peu DBCSI? (comprenez database crime scene investigators <img src='http://www.dbnewz.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )  Pour cela un outil intéressant est <a href="http://mysqldump.azundris.com/archives/61-Using-oprofile.html" target="_blank">oprofile</a>.</p>
<p>Pour tester ça, nous avons un DELL 2850 sous RHEL4 1 disque (hélas) et 2Go de RAM. Le programme de test à été exécuté pendant 30 minutes, et voila les résultats surprenant.</p>
<ul>
<li>Avec binlog</li>
<p>Profiling through timer interrupt<br />
samples  %        image name               symbol name<br />
1680924  47.9708  /lib64/tls/libc-2.3.4.so __ctype_toupper_loc<br />
1651101  47.1197  /usr/libexec/mysqld      dict_create_foreign_constraints_low<br />
54986     1.5692  /usr/libexec/mysqld      yylex(void*, void*)<br />
9083      0.2592  /usr/libexec/mysqld      __do_global_ctors_aux<br />
8541      0.2437  /usr/libexec/mysqld      buf_pool_init<br />
8284      0.2364  /lib64/tls/libc-2.3.4.so memcpy<br />
5918      0.1689  /usr/libexec/mysqld      my_snprintf_ucs2<br />
4934      0.1408  /usr/libexec/mysqld      log_buffer_flush_to_disk<br />
4640      0.1324  /usr/libexec/mysqld      my_strntod_ucs2<br />
4268      0.1218  /usr/libexec/mysqld      MD5Transform<br />
3650      0.1042  /usr/libexec/mysqld      my_parse_charset_xml</p>
<li>Sans binlog</li>
<p>Profiling through timer interrupt<br />
samples  %        image name               symbol name<br />
34847     9.7094  /usr/libexec/mysqld      __do_global_ctors_aux<br />
30416     8.4748  /lib64/tls/libc-2.3.4.so memcpy<br />
30041     8.3703  /usr/libexec/mysqld      buf_pool_init<br />
20615     5.7439  /usr/libexec/mysqld      my_snprintf_ucs2<br />
17065     4.7548  /usr/libexec/mysqld      my_strntod_ucs2<br />
16656     4.6408  /usr/libexec/mysqld      log_buffer_flush_to_disk<br />
14908     4.1538  /usr/libexec/mysqld      dict_create_foreign_constraints_low<br />
9154      2.5506  /lib64/tls/libpthread-2.3.4.so pthread_mutex_trylock<br />
8354      2.3277  /lib64/tls/libc-2.3.4.so __ctype_toupper_loc<br />
8216      2.2892  /lib64/tls/libpthread-2.3.4.so pthread_mutex_unlock<br />
5347      1.4898  /usr/lib/debug/lib/modules/2.6.9-22.ELsmp/vmlinux copy_user_generic<br />
3380      0.9418  /usr/libexec/mysqld      buf_flush_try_page</ul>
<p>On remarque que lorsque les logs binaires sont activés, beaucoup de temps CPU est utilisé par cette fonction &laquo;&nbsp;dict_create_foreign_constraints_low&nbsp;&raquo;. Ce qui très étrange, car elle est supposé être utilisé lorsque d&#8217;une modification de DDL (création de tables,&#8230;) pour effectuer des vérifications sur les clés étrangères. Et sur cette application, même si nous sommes en InnoDB, il n&#8217;y en a aucune.</p>
<p>Des que nous aurons un peu de temps devant nous, nous referons le test sous MySQL 5.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dbnewz.com/2007/04/06/replication-et-log-binaires/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
