<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Bienvenue sur le site admin-sys</title>
	<link>http://www.admin-sys.org/</link>
	<description>Bienvenu sur le site admin-sys.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Bienvenue sur le site admin-sys</title>
		<url>https://www.admin-sys.org/local/cache-vignettes/L144xH55/siteon0-02f93.png?1694605449</url>
		<link>http://www.admin-sys.org/</link>
		<height>55</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>Installation SRM</title>
		<link>https://www.admin-sys.org/?installation-srm</link>
		<guid isPermaLink="true">https://www.admin-sys.org/?installation-srm</guid>
		<dc:date>2008-09-16T17:01:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;Auteur : Judith DEFO &lt;br class='autobr' /&gt;
Rapport d'installation de SRM &lt;br class='autobr' /&gt;
1- Gestion des ressources avec SRM... &lt;br class='autobr' /&gt;
2- Classes d'ordonnancement &lt;br class='autobr' /&gt;
3- Gestion de l'utilisation des ressources CPU.. &lt;br class='autobr' /&gt;
4- Organisation hi&#233;rarchique des ressources. &lt;br class='autobr' /&gt;
4.1- Le fichier lnode &lt;br class='autobr' /&gt;
4.2- Utilisateurs et groupes. &lt;br class='autobr' /&gt;
4.3- Notion de parts. &lt;br class='autobr' /&gt;
4.4- R&#233;partition des parts dans une hi&#233;rarchie. &lt;br class='autobr' /&gt;
4.5- Les fichiers lnodes sp&#233;ciaux. &lt;br class='autobr' /&gt;
5- Administration de SRM. &lt;br class='autobr' /&gt;
5.1 Pour consulter l'arborescence : &lt;br class='autobr' /&gt;
5.2 visualisation des attributs et (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.admin-sys.org/?-srm-" rel="directory"&gt;SRM&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p ALIGN=center&gt;Auteur : Judith DEFO&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h1&gt;Rapport d'installation de SRM&lt;/h1&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544045&#034;&gt;1- Gestion des ressources avec SRM...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544046&#034;&gt;2- Classes d'ordonnancement&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544047&#034;&gt;3- Gestion de l'utilisation des ressources CPU..&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544048&#034;&gt;4- Organisation hi&#233;rarchique des ressources.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544049&#034;&gt;4.1- Le fichier lnode&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544050&#034;&gt;4.2- Utilisateurs et groupes.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544051&#034;&gt;4.3- Notion de parts.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544052&#034;&gt;4.4- R&#233;partition des parts dans une hi&#233;rarchie.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544053&#034;&gt;4.5- Les fichiers lnodes sp&#233;ciaux.&lt;/a&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544054&#034;&gt;5- Administration de SRM.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544055&#034;&gt;5.1 Pour consulter l'arborescence :&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544056&#034;&gt;5.2 visualisation des attributs et flags d'un lnode.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544057&#034;&gt;5.3 Ajout d'un user dans un sgroup.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544058&#034;&gt;5.4 Attribution des parts &#224; un lnode ou un sgroup.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544059&#034;&gt;5.5 Test de l'utilisation de la CPU.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544060&#034;&gt;5.6 Test de l'utilisation de la m&#233;moire.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544061&#034;&gt;5.7 V&#233;rification du lnode propri&#233;taire d'un process.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544062&#034;&gt;5.8 Arr&#234;t de tous les process appartenant &#224; un lnode.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;A HREF=&#034;#_Toc20544063&#034;&gt;5.9 Editions de rapports et de statistiques.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H1&gt;&lt;A NAME=&#034;_Toc20544045&#034;&gt;&lt;/A&gt;1- Gestion des ressources avec SRM&lt;/H1&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Le logiciel SRM (Solaris Ressource Manager) g&#232;re&lt;br class='autobr' /&gt;
les classes de ressources suivantes dans l'environnement&lt;br class='autobr' /&gt;
Solaris : &lt;/p&gt;
&lt;UL TYPE=CIRCLE&gt; &lt;LI&gt;
&lt;p&gt;Allocation de temps CPU&lt;/p&gt;
&lt;LI&gt;
&lt;p&gt;Limites d'utilisation de la m&#233;moire virtuelle&lt;/p&gt;
&lt;LI&gt;
&lt;p&gt;Limites en terme de nombre de processus&lt;/p&gt;
&lt;LI&gt;
&lt;p&gt;Limite en terme de nombre de connexions&lt;/p&gt;
&lt;/UL&gt;
&lt;p&gt;L&#8216;une des fonctions majeures de SRM est le&lt;br class='autobr' /&gt;
contr&#244;le de l'acc&#232;s au CPU qui s'effectue en&lt;br class='autobr' /&gt;
ajoutant une nouvelle classe d'ordonnancement &#224;&lt;br class='autobr' /&gt;
l'environnement Solaris( cette classe est la classe SHR)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H1&gt;&lt;A NAME=&#034;_Toc20544046&#034;&gt;&lt;/A&gt;2- Classes d'ordonnancement&lt;/H1&gt;
&lt;p&gt;L'environnement d'exploitation&lt;br class='autobr' /&gt;
Solaris fournit 4 diff&#233;rents groupes de priorit&#233;s&lt;br class='autobr' /&gt;
appel&#233;s &#171; classes d'ordonnancement &#187;&lt;br class='autobr' /&gt;
qui permettent de contr&#244;ler l'utilisation des ressources&lt;br class='autobr' /&gt;
CPU.&lt;/p&gt;
&lt;UL TYPE=CIRCLE&gt; &lt;LI&gt;
&lt;p&gt;La classe Temps r&#233;el( RT) &#8211; La classe temps r&#233;el&lt;br class='autobr' /&gt; a la priorit&#233; absolue au sein du syst&#232;me, sauf pour le&lt;br class='autobr' /&gt; traitement des interruptions.&lt;/p&gt;
&lt;LI&gt;
&lt;p&gt;La classe syst&#232;me (SYS) &#8211; La classe syst&#232;me&lt;br class='autobr' /&gt; qui g&#232;re les priorit&#233; au niveau de noyau, est utilis&#233;e&lt;br class='autobr' /&gt; pour les threads du syst&#232;me tel que les d&#233;mons de&lt;br class='autobr' /&gt; pages et les threads d'horloges. La classe syst&#232;me ne&lt;br class='autobr' /&gt; contient aucun param&#232;tre configurable&lt;/p&gt;
&lt;LI&gt;
&lt;p&gt;La classe Time Sharing (TS) - La classe partage de temps est&lt;br class='autobr' /&gt; utilis&#233;e pour les travaux standards des utilisateurs. Les&lt;br class='autobr' /&gt; priorit&#233;s sont ajust&#233;s dynamiquement en fonction de&lt;br class='autobr' /&gt; l'utilisation des ressources CPU.&lt;/p&gt;
&lt;LI&gt;
&lt;p&gt;La classe interactive (IA) &#8211; La classe interactive&lt;br class='autobr' /&gt; d&#233;rive de la classe partage de temps, et accro&#238;t les&lt;br class='autobr' /&gt; performances des taches ex&#233;cut&#233;es dans les fen&#234;tres&lt;br class='autobr' /&gt; actives tels que Cde ou Openwindow&lt;/p&gt;
&lt;/UL&gt;
&lt;H1&gt;&lt;A NAME=&#034;_Toc20544047&#034;&gt;&lt;/A&gt;3- Gestion de l'utilisation des
ressources CPU&lt;/H1&gt;
&lt;p&gt; La configuration de SRM d&#233;finit des&lt;br class='autobr' /&gt;
quantit&#233;s cibles d'utilisation des ressources CPU pour&lt;br class='autobr' /&gt;
les groupes d'utilisateurs et des utilisateurs individuels du&lt;br class='autobr' /&gt;
syst&#232;me. Ces quantit&#233;s sont exprim&#233;s sous forme&lt;br class='autobr' /&gt;
de rapport. SRM remplace les classes TS et IS par la classe SHR&lt;br class='autobr' /&gt;
(share).&lt;/p&gt;
&lt;p&gt;La classe de parts SHR est une nouvelle classe&lt;br class='autobr' /&gt;
d'ordonnancement ajout&#233; &#224; l'environnement&lt;br class='autobr' /&gt;
Solaris. Elle ex&#233;cute les m&#234;mes fonctions que les autres&lt;br class='autobr' /&gt;
classes d&#233;termine le priorit&#233; d'ordonnancement &lt;br class='autobr' /&gt;
des threads et processus ainsi que la quantit&#233; de temps CPU&lt;br class='autobr' /&gt;
que ce thread/processus peut utiliser.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Une certaine part de temps CPU disponible est&lt;br class='autobr' /&gt;
allou&#233; &#224; chaque utilisateur de CPU. SRM g&#232;re&lt;br class='autobr' /&gt;
l'acc&#232;s de fa&#231;on &#224; &#233;quilibrer le&lt;br class='autobr' /&gt;
rapport entre les groupes et les utilisateurs.&lt;/p&gt;
&lt;p&gt;Supposons par exemple qu'une t&#226;che a&lt;br class='autobr' /&gt;
utilis&#233; la CPU de fa&#231;on intensive et a largement&lt;br class='autobr' /&gt;
d&#233;pass&#233; sa part (Cette situation peut appara&#238;tre&lt;br class='autobr' /&gt;
si aucun autre travail n'a besoin de CPU). Lorsqu'une&lt;br class='autobr' /&gt;
nouvelle t&#226;che d&#233;bute, le temps CPU accord&#233; &#224;&lt;br class='autobr' /&gt;
la premi&#232;re t&#226;che est consid&#233;rablement, voir&lt;br class='autobr' /&gt;
totalement r&#233;duite jusqu'&#224; ce que le nouvel&lt;br class='autobr' /&gt;
utilisateur ait consomm&#233; suffisamment de temps CPU pour&lt;br class='autobr' /&gt;
r&#233;tablir l'&#233;quilibre du rapport d'utilisation&lt;br class='autobr' /&gt;
par rapport &#224; la premi&#232;re t&#226;che.&lt;/p&gt;
&lt;p&gt;SRM utilise une combinaison de rapport&lt;br class='autobr' /&gt;
d'utilisation totale de CPU sur une certaine p&#233;riode.&lt;br class='autobr' /&gt;
L'une des principales t&#226;che lors de la configuration de&lt;br class='autobr' /&gt;
l'outil est de d&#233;terminer les rapports.&lt;/p&gt;
&lt;H1&gt;&lt;A NAME=&#034;_Toc20544048&#034;&gt;&lt;/A&gt;4- Organisation hi&#233;rarchique
des ressources&lt;/H1&gt;
&lt;H2&gt;&lt;A NAME=&#034;_Toc20544049&#034;&gt;&lt;/A&gt;4.1- Le fichier lnode&lt;/H2&gt;
&lt;p&gt;SRM utilise le fichier lnode (limit node) pour&lt;br class='autobr' /&gt;
identifier un utilisateur et enregistrer son appartenance &#224; un&lt;br class='autobr' /&gt;
groupe, son total de parts de CPU et les statistiques cumul&#233;es&lt;br class='autobr' /&gt;
sur l'utilisation des ressources. Ces fichiers lnodes sont&lt;br class='autobr' /&gt;
cr&#233;es lors de l'installation de l'outil pour tous&lt;br class='autobr' /&gt;
les utilisateurs existants.&lt;/p&gt;
&lt;p&gt;Un fichier lnode est donc associ&#233; &#224;&lt;br class='autobr' /&gt;
chaque utilisateur. Le syst&#232;me lit ces fichiers lors du&lt;br class='autobr' /&gt;
d&#233;marrage du syst&#232;me afin de d&#233;terminer les&lt;br class='autobr' /&gt;
parts de ressources utilisable par chaque utilisateur. Ils permettent&lt;br class='autobr' /&gt;
aussi d'enregistrer les ressources consomm&#233;es par&lt;br class='autobr' /&gt;
utilisateur.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H4&gt;Attention : SRM ne g&#232;re les ressources que des
utilisateurs dont l'uid &lt;65xxx&lt;/H4&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Les fichiers lnodes sont class&#233;s dans une&lt;br class='autobr' /&gt;
structure arborescente dans laquelle un rapport de part est d&#233;fini&lt;br class='autobr' /&gt;
entre les homologues ayant le m&#234;me parent. Les fichiers lnodes&lt;br class='autobr' /&gt;
des utilisateurs parents constituent les fichiers sgroup&lt;br class='autobr' /&gt;
(scheduling group)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Un sgroup peut &#234;tre un utilisateur&lt;br class='autobr' /&gt;
existant ou un compte r&#233;serv&#233; qui sert de consolidation&lt;br class='autobr' /&gt;
pour les utilisateurs de niveau inf&#233;rieur. Les statistiques&lt;br class='autobr' /&gt;
sont cumul&#233;s dans le fichier lnode pour l'utilisateur.&lt;br class='autobr' /&gt;
Elles sont &#233;galement cumul&#233;es au niveau du sgroup&lt;br class='autobr' /&gt;
incluant tous les lnodes inf&#233;rieurs au sgroup dans la&lt;br class='autobr' /&gt;
structure hi&#233;rarchique y compris le sgroup de niveau&lt;br class='autobr' /&gt;
inf&#233;rieur.&lt;/p&gt;
&lt;p&gt;Les processus &#233;tant rattach&#233;s aux&lt;br class='autobr' /&gt;
fichiers lnodes, ils h&#233;ritent des propri&#233;t&#233;s&lt;br class='autobr' /&gt;
affect&#233;es &#224; ces fichiers. En r&#232;gle g&#233;n&#233;ral,&lt;br class='autobr' /&gt;
un processus appartient aux fichiers lnode du parent initiateur, mais&lt;br class='autobr' /&gt;
ce n'est pas toujours le cas (utilisation de la commande&lt;br class='autobr' /&gt;
&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;srmuser&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
pour lancer sous un autre lnode)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La figure 1 page suivante montre un exemple&lt;br class='autobr' /&gt;
d'arborescence SRM&lt;/p&gt;
&lt;p&gt;Root, oracle sont des sgroup&lt;/p&gt;
&lt;p&gt;Appuser, srmidle, srmlost, srmother sont des&lt;br class='autobr' /&gt;
lnodes&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;!--[if gte vml 1]&gt;&lt;v:group id=&#034;_x0000_s1059&#034; style='position:absolute;&lt;br class='autobr' /&gt; margin-left:0;margin-top:-24.25pt;width:461.1pt;height:241.9pt;z-index:1'&lt;br class='autobr' /&gt; coordorigin=&#034;720,382&#034; coordsize=&#034;4801,2126&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:shapetype id=&#034;_x0000_t202&#034; coordsize=&#034;21600,21600&#034; o:spt=&#034;202&#034; path=&#034;m0,0l0,21600,21600,21600,21600,0xe&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:stroke joinstyle=&#034;miter&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:path gradientshapeok=&#034;t&#034; o:connecttype=&#034;rect&#034;/&gt;&lt;br class='autobr' /&gt; &lt;/v:shapetype&gt;&lt;v:shape id=&#034;_x0000_s1060&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:2303;top:382;width:452;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1060;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;root&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1061&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:2975;top:1294;width:714;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1061;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;srmidle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1062&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:3888;top:1294;width:702;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1062;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;srmlost&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1063&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:4704;top:1294;width:817;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1063;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;srmother&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1064&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:1968;top:1294;width:609;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1064;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;oracle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1065&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:720;top:1294;width:734;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1065;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;appuser&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1066&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:1574;top:2232;width:703;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1066;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;oracle1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:shape id=&#034;_x0000_s1067&#034; type=&#034;#_x0000_t202&#034; style='position:absolute;&lt;br class='autobr' /&gt; left:2592;top:2254;width:702;height:254;mso-wrap-style:none;v-text-anchor:top-baseline'&lt;br class='autobr' /&gt; filled=&#034;f&#034; fillcolor=&#034;#0c9&#034; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:textbox style='mso-next-textbox:#_x0000_s1067;mso-fit-shape-to-text:t'&gt;&lt;br class='autobr' /&gt; &lt;![if !mso]&gt;&lt;/p&gt;
&lt;table cellpadding=0 cellspacing=0 width=&#034;100%&#034;&gt; &lt;tr&gt; &lt;td&gt;&lt;![endif]&gt; &lt;div&gt; &lt;p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'&gt;&lt;span&lt;br class='autobr' /&gt; style='font-size:18.0pt;color:black'&gt;oracle2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt; &lt;p&gt;&lt;![if !mso]&gt;&lt;/p&gt;
&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;p&gt;&lt;![endif]&gt;&lt;/v:textbox&gt;&lt;br class='autobr' /&gt; &lt;/v:shape&gt;&lt;v:line id=&#034;_x0000_s1068&#034; style='position:absolute;flip:x' from=&#034;1872,1488&#034;&lt;br class='autobr' /&gt; to=&#034;2208,2256&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:line id=&#034;_x0000_s1069&#034; style='position:absolute' from=&#034;2304,1488&#034; to=&#034;2880,2256&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:line id=&#034;_x0000_s1070&#034; style='position:absolute;flip:x' from=&#034;2256,576&#034;&lt;br class='autobr' /&gt; to=&#034;2496,1344&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:line id=&#034;_x0000_s1071&#034; style='position:absolute' from=&#034;2592,576&#034; to=&#034;3216,1296&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:line id=&#034;_x0000_s1072&#034; style='position:absolute' from=&#034;2640,576&#034; to=&#034;4176,1296&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:line id=&#034;_x0000_s1073&#034; style='position:absolute' from=&#034;2688,528&#034; to=&#034;5040,1296&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:line id=&#034;_x0000_s1074&#034; style='position:absolute;flip:x' from=&#034;1056,528&#034;&lt;br class='autobr' /&gt; to=&#034;2304,1344&#034;/&gt;&lt;br class='autobr' /&gt;
&lt;/v:group&gt;&lt;![endif]--&gt;&lt;IMG src='https://www.admin-sys.org/solaris/sun/srm/srm_images/image001.gif' NAME=&#034;Image1&#034; ALIGN=BOTTOM width='324' height='617' BORDER=0&gt; &lt;/p&gt;
&lt;p&gt; &lt;br class='autobr' /&gt;
Figure 1&lt;/p&gt;
&lt;H2&gt;&lt;A NAME=&#034;_Toc20544050&#034;&gt;&lt;/A&gt;4.2- Utilisateurs et groupes&lt;/H2&gt;
&lt;p&gt;SRM effectue le suivi des ressources consomm&#233;es.&lt;br class='autobr' /&gt;
Chaque ressource consomm&#233;e est imput&#233;e au fichier lnode&lt;br class='autobr' /&gt;
et cumul&#233;e dans ce fichier . Il ne fait aucune diff&#233;rence&lt;br class='autobr' /&gt;
entre un fichier lnode et un fichier sgroup. Toute propri&#233;t&#233;&lt;br class='autobr' /&gt;
attribu&#233; &#224; un lnode peut &#234;tre attribu&#233; &#224;&lt;br class='autobr' /&gt;
un sgroup.&lt;/p&gt;
&lt;p&gt;Les propri&#233;t&#233;s non sp&#233;cifi&#233;es&lt;br class='autobr' /&gt;
dans un lnodes sont h&#233;rit&#233;s du sgroup parent&lt;/p&gt;
&lt;p&gt;Si un utilisateur de syst&#232;me est inconnu&lt;br class='autobr' /&gt;
de SRM, un fichier lnode par d&#233;faut est associ&#233; &#224;&lt;br class='autobr' /&gt;
cet utilisateur(&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;srmother&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H2&gt;&lt;A NAME=&#034;_Toc20544051&#034;&gt;&lt;/A&gt;4.3- Notion de parts&lt;/H2&gt;
&lt;p&gt;SRM alloue l'utilisation des ressources au&lt;br class='autobr' /&gt;
prorata de la part d&#233;tenu par chaque fichier lnode. Une&lt;br class='autobr' /&gt;
attribution d&#233;signe une quantit&#233; de ressource CPU que&lt;br class='autobr' /&gt;
le fichier lnode re&#231;oit. Tous les fichiers lnodes ont une&lt;br class='autobr' /&gt;
attribution. Tous les processus appartenant au fichier lnode&lt;br class='autobr' /&gt;
participent &#224; l'utilisation de cette part. Le nombre de&lt;br class='autobr' /&gt;
parts utilisables par un syst&#232;me est illimit&#233;.&lt;/p&gt;
&lt;p&gt;Une part d&#233;finie un rapport d'utilisation&lt;br class='autobr' /&gt;
des ressources entre les fichiers lnodes homologues dans&lt;br class='autobr' /&gt;
l'arborescence, au sein du m&#234;me sgroup. Peu importe si&lt;br class='autobr' /&gt;
l'homologue est un fichier sgroup ou un lnode.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id=&#034;_x0000_t75&#034; coordsize=&#034;21600,21600&#034;&lt;br class='autobr' /&gt; o:spt=&#034;75&#034; o:preferrelative=&#034;t&#034; path=&#034;m@4@5l@4@11@9@11@9@5xe&#034; filled=&#034;f&#034;&lt;br class='autobr' /&gt; stroked=&#034;f&#034;&gt;&lt;br class='autobr' /&gt; &lt;v:stroke joinstyle=&#034;miter&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:formulas&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;if lineDrawn pixelLineWidth 0&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;sum @0 1 0&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;sum 0 0 @1&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;prod @2 1 2&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;prod @3 21600 pixelWidth&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;prod @3 21600 pixelHeight&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;sum @0 0 1&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;prod @6 1 2&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;prod @7 21600 pixelWidth&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;sum @8 21600 0&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;prod @7 21600 pixelHeight&#034;/&gt;&lt;br class='autobr' /&gt; &lt;v:f eqn=&#034;sum @10 21600 0&#034;/&gt;&lt;br class='autobr' /&gt; &lt;/v:formulas&gt;&lt;br class='autobr' /&gt; &lt;v:path o:extrusionok=&#034;f&#034; gradientshapeok=&#034;t&#034; o:connecttype=&#034;rect&#034;/&gt;&lt;br class='autobr' /&gt; &lt;o:lock v:ext=&#034;edit&#034; aspectratio=&#034;t&#034;/&gt;&lt;br class='autobr' /&gt;
&lt;/v:shapetype&gt;&lt;v:shape id=&#034;_x0000_i1025&#034; type=&#034;#_x0000_t75&#034; alt=&#034;Graphic&#034;&lt;br class='autobr' /&gt; style='width:278.25pt;height:179.25pt'&gt;&lt;br class='autobr' /&gt; &lt;v:imagedata src=&#034;/solaris/sun/srm/srm_images/image002.gif&#034; o:href=&#034;http://docs.sun.com/ab2/coll.409.4/RSCMGNTADMIN/@raster?filename=figures/consolweb.epsi.gif&#034;/&gt;&lt;br class='autobr' /&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;IMG src='https://www.admin-sys.org/solaris/sun/srm/srm_images/image002.gif' NAME=&#034;Image2&#034; ALT=&#034;Graphic&#034; ALIGN=BOTTOM width='239' height='371' BORDER=0&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; figure 2&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La figure 2 d&#233;crit un sgroup (&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;sales&lt;br class='autobr' /&gt;
Database&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;) et un lnode (&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;Webserver&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;s)&lt;br class='autobr' /&gt;
Le rapport entre les parts est 80 pour le sgroup et 20 pour le lnode&lt;br class='autobr' /&gt;
serveur Web&lt;/p&gt;
&lt;p&gt;En pourcentage ce la donne 80% CPU pour le&lt;br class='autobr' /&gt;
sgroup (sales Database) et 20% pour le lnode Web server En admettant&lt;br class='autobr' /&gt;
qu'aucune activit&#233; n'est g&#233;n&#233;r&#233;&lt;br class='autobr' /&gt;
par le sgroup parent (root)&lt;/p&gt;
&lt;p&gt;A l'int&#233;rieur du groupe les&lt;br class='autobr' /&gt;
fichiers lnodes se partagent les parts dans le rapport 20 pour online&lt;br class='autobr' /&gt;
et 1 pour batch. En admettant que le sgroup sales Database n'est&lt;br class='autobr' /&gt;
pas un utilisateur actif par cons&#233;quent ne g&#233;n&#232;re&lt;br class='autobr' /&gt;
aucune activit&#233;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H2&gt;&lt;A NAME=&#034;_Toc20544052&#034;&gt;&lt;/A&gt;4.4- R&#233;partition des parts dans
une hi&#233;rarchie&lt;/H2&gt;
&lt;H2&gt; &lt;/H2&gt;
&lt;p&gt;Les fichiers sgroup et lnodes ont deux valeurs&lt;br class='autobr' /&gt;
de part d'attribution&lt;/p&gt;
&lt;p&gt;La premi&#232;re &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;cpu.shares&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;,&lt;br class='autobr' /&gt;
est une part d'attribution que le fichier lnode re&#231;oit(du&lt;br class='autobr' /&gt;
lnode parent) par rapport &#224; son homologue dans son sgroup&lt;br class='autobr' /&gt;
parent. Il s'agit du rapport d&#233;crit dans le paragraphe&lt;br class='autobr' /&gt;
pr&#233;c&#233;dent.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La seconde &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;cpu.myshares&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
est la part de contribution que le fichier lnode du sgroup re&#231;oit&lt;br class='autobr' /&gt;
par rapport au membre de son groupe(les lnodes fils) . Par cons&#233;quent&lt;br class='autobr' /&gt;
le fichier lnode du sgroup est en fait consid&#233;r&#233; comme&lt;br class='autobr' /&gt;
un homologue de ses membres lorsque les attributions de CPU sont&lt;br class='autobr' /&gt;
d&#233;termin&#233;es.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id=&#034;CHAPTER10-GR-47&#034; o:spid=&#034;_x0000_i1026&#034;&lt;br class='autobr' /&gt; type=&#034;#_x0000_t75&#034; alt=&#034;Graphic&#034; style='width:284.25pt;height:149.25pt'&gt;&lt;br class='autobr' /&gt; &lt;v:imagedata src=&#034;/solaris/sun/srm/srm_images/image003.gif&#034; o:href=&#034;http://docs.sun.com/ab2/coll.409.4/RSCMGNTADMIN/@raster?filename=figures/databases2.epsi.gif&#034;/&gt;&lt;br class='autobr' /&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;IMG src='https://www.admin-sys.org/solaris/sun/srm/srm_images/image003.gif' NAME=&#034;Image3&#034; ALT=&#034;Graphic&#034; ALIGN=BOTTOM width='199' height='379' BORDER=0&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;En admettant que root ne consomme rien comme&lt;br class='autobr' /&gt;
ressource. Sa part de CPU par rapport a ses homologues (inexistant&lt;br class='autobr' /&gt;
ici car c'est la racine) est de 100.&lt;/p&gt;
&lt;p&gt;Cette part il la partage entre les groupes&lt;br class='autobr' /&gt;
&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;Databases&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
et &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;batchs&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;.&lt;br class='autobr' /&gt;
&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;Databases et batchs&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
poss&#232;dent des parts dans un rapport 20 :1 soit&lt;br class='autobr' /&gt;
20/21pour &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;database&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
et 1/21% pour &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;batchs&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;.&lt;/p&gt;
&lt;p&gt;Dans le groupe &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;database&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
. La consommation de CPU du groupe sera utilis&#233; par db1 et db2&lt;br class='autobr' /&gt;
dans un rapport de 1 :3 . Si A est la consommation de CPU de&lt;br class='autobr' /&gt;
&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;database&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;, &lt;br class='autobr' /&gt;
cette consommation sera r&#233;partie de la fa&#231;on suivante&lt;br class='autobr' /&gt;
1/4A pour db2 et 3/4Apour db1.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Supposons que db1 est un vautour qui rapporte &#224;&lt;br class='autobr' /&gt;
sa prog&#233;niture les restes d'une proie partag&#233;e&lt;br class='autobr' /&gt;
avec les autres pr&#233;dateurs. Cette nourriture sera ensuite&lt;br class='autobr' /&gt;
redivis&#233;e pour nourrir toute la famille. Si un des oisillons&lt;br class='autobr' /&gt;
est absent, sa part est r&#233;partie entre les oisillons pr&#233;sents.&lt;br class='autobr' /&gt;
Db1 aura donc une part de 4/10(cpu.myshares=4 ce param&#232;tre&lt;br class='autobr' /&gt;
d&#233;finit sa part par rapport aux lnodes fils ws1) et ws1 6/10&lt;br class='autobr' /&gt;
de la proie.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H2&gt;&lt;A NAME=&#034;_Toc20544053&#034;&gt;&lt;/A&gt;4.5- Les fichiers lnodes sp&#233;ciaux&lt;/H2&gt;
&lt;p&gt; &lt;/p&gt;
&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=65&gt; &lt;p LANG=&#034;nl-NL&#034;&gt; srmidle&lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=498&gt; &lt;p&gt; Une t&#226;che rattach&#233; au fichier lnode srmidle est&lt;br class='autobr' /&gt; uniquement ex&#233;cut&#233;e lorsque la file des t&#226;ches&lt;br class='autobr' /&gt; en attentes d'ex&#233;cution est vide. Cette t&#226;che&lt;br class='autobr' /&gt; consommera donc tout le temps CPU restant. Ce fichier lnode est&lt;br class='autobr' /&gt; cr&#233;&#233; par d&#233;faut sous l'uid 41. Le&lt;br class='autobr' /&gt; nombre de part attribuer &#224; ce lnode doit toujours &#234;tre&lt;br class='autobr' /&gt; nul.&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=65&gt; &lt;p&gt; srmlost&lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=498&gt; &lt;p&gt; Le fichier lnode srmlost h&#233;rite des processus rattach&#233;s&lt;br class='autobr' /&gt; aux comptes inexistant(&#224; l'aide de la commande setuid&lt;br class='autobr' /&gt; par exemple)&lt;/p&gt;
&lt;p&gt; Son uid par d&#233;faut vaut 42 . on peut changer sont uid&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=65&gt; &lt;p&gt; srmother&lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=498&gt; &lt;p&gt; Le syst&#232;me utilise le fichier lnode srmother comme sgroup&lt;br class='autobr' /&gt; par d&#233;faut pour les nouveaux utilisateurs ajout&#233; au&lt;br class='autobr' /&gt; syst&#232;me, avant de les transf&#233;rer &#224; leur&lt;br class='autobr' /&gt; emplacement correct dans l'arborescence de SRM&lt;/p&gt;
&lt;p&gt; Le syst&#232;me cr&#233;&#233; automatiquement ce lnode lors&lt;br class='autobr' /&gt; de l'installation. Son uid vaut 43. Son nom et son UID ne&lt;br class='autobr' /&gt; peuvent pas &#234;tre modifi&#233;s.&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt;
&lt;/TABLE&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p STYLE=&#034;page-break-before: always&#034;&gt; &lt;/p&gt;
&lt;H1&gt;&lt;A NAME=&#034;_Toc20544054&#034;&gt;&lt;/A&gt;5- Administration de SRM&lt;/H1&gt;
&lt;p&gt;Les commandes d'administration de SRM sont&lt;br class='autobr' /&gt;
dans les repertoires &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;/usr/srm/bin&lt;br class='autobr' /&gt;
/sur/srm/sbin /usr/srm/unsupport&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;. Le manuel&lt;br class='autobr' /&gt;
des commandes est dans le repertoire &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;/usr/srm/man.&lt;br class='autobr' /&gt;
&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;Il y'a un fichier &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;/.env-judith&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
qui contient les variables d'environnement PATH et MANPATH&lt;br class='autobr' /&gt;
adapt&#233; &#224; SRM .&lt;/p&gt;
&lt;H3&gt;&lt;A NAME=&#034;_Toc20544055&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.1 Pour consulter
l'arborescence&lt;/FONT&gt;&lt;/KBD&gt;&lt;FONT SIZE=3&gt; :&lt;/FONT&gt;&lt;/H3&gt;
&lt;pre&gt;# &lt;B&gt;/usr/srm/unsupport/schedtree&lt;/B&gt;&lt;/pre&gt;&lt;H3&gt;
&lt;A NAME=&#034;_Toc20544056&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.2 visualisation des
attributs et flags d'un lnode&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H3&gt;
&lt;H4&gt;&lt;KBD&gt;&lt;SPAN STYLE=&#034;font-weight: medium&#034;&gt;On utilise la commande
liminfo pour visualiser les parts actuellement allou&#233;es pour un utilisateur sp&#233;cifique&lt;/KBD&gt;&lt;/H4&gt;
&lt;p&gt;# &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;liminfo&lt;br class='autobr' /&gt;
dave &lt;/FONT&gt;&lt;FONT FACE=&#034;Wingdings&#034;&gt;&#224;&lt;/FONT&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;&lt;br class='autobr' /&gt;
donne la consommation de l'utilisateur dave&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;# &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;liminfo&lt;br class='autobr' /&gt;
&#8211;v dave -&gt;donne les valeurs de tous les attributs du user&lt;br class='autobr' /&gt;
dave.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;Parmi les attributs qui sont list&#233; par la&lt;br class='autobr' /&gt;
commande pr&#233;c&#233;dente, certains peuvent &#234;tre&lt;br class='autobr' /&gt;
modifi&#233;es (par la commande &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;limadm&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;).&lt;/p&gt;
&lt;H3&gt;&lt;A NAME=&#034;_Toc20544057&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.3 Ajout d'un
user dans un sgroup &lt;/FONT&gt;&lt;/KBD&gt;
&lt;/H3&gt;
&lt;pre&gt;&lt;B&gt;Username=joe sgroup=batch&lt;/B&gt; # &lt;B&gt;limadm set sgroup=batch joe&lt;/B&gt; &lt;FONT SIZE=3&gt;&lt;FONT FACE=&#034;Times New Roman&#034;&gt;La commande pr&#233;c&#233;dente va cr&#233;er un lnode pour l'utilisateur joe s'il n'existait pas et va l'ajouter dans le sgroup batch&lt;/FONT&gt;&lt;/FONT&gt;&lt;B&gt;.&lt;/B&gt;&lt;/pre&gt;&lt;H3&gt;
&lt;A NAME=&#034;_Toc20544058&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.4 Attribution des
parts &#224; un lnode ou un sgroup&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H3&gt;
&lt;pre&gt;# &lt;B&gt;limadm set cpu.shares=20 databases&lt;/B&gt; # &lt;B&gt;limadm set cpu.shares=1 batch&lt;/B&gt; # &lt;B&gt;limadm set cpu.shares=1 joe&lt;/B&gt;&lt;/pre&gt;&lt;p LANG=&#034;en-GB&#034;&gt;
&lt;I&gt; &lt;/I&gt;&lt;/p&gt;
&lt;p&gt;Les param&#232;tres de configuration de la&lt;br class='autobr' /&gt;
consommation CPU sont les suivantes :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=137&gt; &lt;H6&gt;&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt; cpu.shares&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H6&gt; &lt;/TD&gt; &lt;TD WIDTH=426&gt; &lt;p&gt; Part d'attribution de CPUque le fichier lnode par rapport &lt;br class='autobr' /&gt; &#224; son homologue dans son sgroup parent&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=137&gt; &lt;pre&gt;&lt;B&gt; cpu.myshares&lt;/B&gt;&lt;/pre&gt; &lt;/TD&gt; &lt;TD WIDTH=426&gt; &lt;p&gt; Part d'attribution de CPU que le fichier lnode du sgroup&lt;br class='autobr' /&gt; re&#231;oit par rapport aux membre de son groupe&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt;
&lt;/TABLE&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Les param&#232;tres de configuration de la&lt;br class='autobr' /&gt;
consommation de m&#233;moire virtuelle sont les suivantes :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=125&gt; &lt;p&gt; &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;memory.limit &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=438&gt; &lt;p&gt; Nombre total maximum d'octets de m&#233;moire virtuelle&lt;br class='autobr' /&gt; que les processus connect&#233;s &#224; ce lnode peuvent&lt;br class='autobr' /&gt; utilis&#233;s.&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=125&gt; &lt;p&gt; &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;memory.plimit &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=438&gt; &lt;p&gt; Nombre total maximum d'octets de m&#233;moire virtuelle&lt;br class='autobr' /&gt; qu'un seul processus connect&#233;s &#224; ce lnode peut&lt;br class='autobr' /&gt; utilis&#233;s.&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt;
&lt;/TABLE&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;SRM g&#232;re le nombre de processus gr&#226;ce&lt;br class='autobr' /&gt;
aux flags &lt;B&gt;process&lt;/B&gt;( visibles dans les attributs d'un&lt;br class='autobr' /&gt;
lnode &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;liminfo &#8211;v&lt;br class='autobr' /&gt;
user&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=137&gt; &lt;H6&gt;&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt; Process.limit&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H6&gt; &lt;/TD&gt; &lt;TD WIDTH=426&gt; &lt;p&gt; Nombre maximum de process pouvant &#234;tre attach&#233; &#224;&lt;br class='autobr' /&gt; un lnode/&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt;
&lt;/TABLE&gt;
&lt;H5&gt; &lt;/H5&gt;
&lt;H5&gt;Tous les param&#232;tres list&#233;es dans les tableaux
pr&#233;c&#233;dents peuvent &#234;tre modifi&#233;s par la
commande &lt;KBD&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;limadm&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H5&gt;
&lt;p STYLE=&#034;margin-bottom: 0cm&#034;&gt; &lt;/p&gt;
&lt;H3&gt;&lt;A NAME=&#034;_Toc20544059&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.5 Test de
l'utilisation de la CPU&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H3&gt;
&lt;p&gt;SRM fournis un script &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;nspin&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
permettant d'effectuer des tests CPU. Utilis&#233; sans&lt;br class='autobr' /&gt;
argument, ce script cr&#233;er un processus ex&#233;cut&#233;&lt;br class='autobr' /&gt;
en boucle afin de consommer du temps CPU. Avec l'op&#233;rande&lt;br class='autobr' /&gt;
&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;&#8211;n xx il g&#233;n&#232;re&lt;br class='autobr' /&gt;
xx &lt;/FONT&gt;&lt;/FONT&gt;processus individuel rattach&#233;s au m&#234;me&lt;br class='autobr' /&gt;
lnode.&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt; &lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;# &lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;nspin&lt;br class='autobr' /&gt;
&#8211;n 20&amp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Cette commande lancera en arri&#232;re plan 20&lt;br class='autobr' /&gt;
processus npin afin de g&#233;n&#233;rer une consommation en CPU&lt;/p&gt;
&lt;p&gt;Il est possible de lancer une commande sous une&lt;br class='autobr' /&gt;
autre identit&#233;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;# &lt;br class='autobr' /&gt;
srmuser oracle nspin &#8211;n 20&amp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;Etant connect&#233; root, en tapant la&lt;br class='autobr' /&gt;
commande pr&#233;c&#233;dente , on lance 20 processus nspin en&lt;br class='autobr' /&gt;
arri&#232;re plan appartenant au lnode root&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;H3&gt;&lt;A NAME=&#034;_Toc20544060&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.6 Test de
l'utilisation de la m&#233;moire&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H3&gt;
&lt;p&gt;En admettant qu'on a fixer un plafond &#224;&lt;br class='autobr' /&gt;
5m par process pour le user toto, on peut tester de la fa&#231;on&lt;br class='autobr' /&gt;
suivante :&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;# &lt;br class='autobr' /&gt;
srmuser toto dd if=/ddev/zero of=/dev/null bs=6000k&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p LANG=&#034;en-GB&#034;&gt; &lt;/p&gt;
&lt;H3&gt;&lt;A NAME=&#034;_Toc20544061&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.7 V&#233;rification
du lnode propri&#233;taire d'un process&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H3&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;#&lt;br class='autobr' /&gt;
plimit &#8211;p &lt; pid&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;H3&gt;&lt;A NAME=&#034;_Toc20544062&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=3&gt;5.8 Arr&#234;t de
tous les process appartenant &#224; un lnode &lt;/FONT&gt;&lt;/KBD&gt;
&lt;/H3&gt;
&lt;p&gt;&lt;KBD&gt;&lt;I&gt; &lt;/I&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;#&lt;br class='autobr' /&gt;
srmkill &lt;lname&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;I&gt; &lt;/I&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;H2&gt;&lt;A NAME=&#034;_Toc20544063&#034;&gt;&lt;/A&gt;&lt;KBD&gt;&lt;FONT SIZE=2&gt;5.9 Editions de
rapports et de statistiques&lt;/FONT&gt;&lt;/KBD&gt;&lt;/H2&gt;
&lt;p&gt;La commande limreport extrait les donn&#233;es&lt;br class='autobr' /&gt;
de la base SRM et des fichiers lnode du noyau. Cette commande&lt;br class='autobr' /&gt;
flexible permet de mettre en forme les donn&#233;es extraites&lt;/p&gt;
&lt;p&gt;Synthaxe :&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;limreport&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;br class='autobr' /&gt;
&lt;VAR&gt;select-expression&lt;/VAR&gt; &lt;VAR&gt;format&lt;/VAR&gt; [&lt;VAR&gt;identifier&lt;/VAR&gt;]...&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=137&gt; &lt;p&gt; &lt;VAR&gt;select-expression&lt;/VAR&gt;&lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=426&gt; &lt;p&gt;&lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;est&lt;br class='autobr' /&gt; une expression qui d&#233;crit les donn&#233;es &#224;&lt;br class='autobr' /&gt; r&#233;cup&#233;rer dans la base SRM. La commande limreport&lt;br class='autobr' /&gt; effectue un seul passage dans la base affin de r&#233;cup&#233;rer&lt;br class='autobr' /&gt; les donn&#233;es de formater les lignes correspondant &#224;&lt;br class='autobr' /&gt; cette expression&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=137&gt; &lt;p&gt; &lt;VAR&gt;format&lt;/VAR&gt;&lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=426&gt; &lt;p&gt; &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;est une sp&#233;cification&lt;br class='autobr' /&gt; du format de type printf. Un &#8211; d&#233;signe le format par&lt;br class='autobr' /&gt; d&#233;faut&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt; &lt;TR VALIGN=TOP&gt; &lt;TD WIDTH=137&gt; &lt;p&gt; [&lt;VAR&gt;identifier&lt;/VAR&gt;&lt;/p&gt;
&lt;/TD&gt; &lt;TD WIDTH=426&gt; &lt;p&gt; &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;le nom de l'attribut&lt;br class='autobr' /&gt; ou flag du fichier lnode &lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt; &lt;KBD&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;limreport &#8211;a pour&lt;br class='autobr' /&gt; afficher tous les indicateurs possibles&lt;/FONT&gt;&lt;/FONT&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;/TD&gt; &lt;/TR&gt;
&lt;/TABLE&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;p&gt;Pour afficher les noms de tous les&lt;br class='autobr' /&gt;
fichiers lnodes.&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;#&lt;br class='autobr' /&gt;
limreport flag.real &#8211; lname &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;Le flag flag.real est un flag qui est&lt;br class='autobr' /&gt;
d&#233;finit uniquement pour les lnodes. Ca permet de r&#233;cup&#233;rer&lt;br class='autobr' /&gt;
entre autre la liste des comptes ayant un lnode&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Pour conna&#238;tre l'utilisateur associ&#233;&lt;br class='autobr' /&gt;
&#224; l'UID 13562 avec un formatage simple&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;SPAN LANG=&#034;nl-NL&#034;&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;#&lt;br class='autobr' /&gt;
limreport uid==13562 &#8220;uid %d is user %s.\n&#8221; uid lname &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;Pour afficher les utilisateurs actifs du syst&#232;me&lt;br class='autobr' /&gt;
ainsi que leur emplacement dans la hi&#233;rarchie&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;#&lt;br class='autobr' /&gt;
limreport &#8216;flag.real&amp;&amp;cpu.usage&gt;0' &#8211; uid&lt;br class='autobr' /&gt;
sgroup lname cpu.shares&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;cpu.usage|sort&lt;br class='autobr' /&gt;
+1n +0n&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La commande srmstat permet d'afficher&lt;br class='autobr' /&gt;
l'utilisation courante des parts dans la hi&#233;rarchie SRM.&lt;br class='autobr' /&gt;
La commande limreport g&#233;n&#232;re des rapports sur&lt;br class='autobr' /&gt;
l'utilisation cumul&#233; des ressources dans les fichiers&lt;br class='autobr' /&gt;
lnodes, tandis que la commande srmstat g&#233;n&#232;re des&lt;br class='autobr' /&gt;
rapports sur l'activit&#233; courante au sein du syst&#232;me&lt;br class='autobr' /&gt;
&#233;valu&#233; par SRM&lt;/p&gt;
&lt;p&gt;Il permet d'afficher les par affect&#233;&lt;br class='autobr' /&gt;
&#224; chaque lnode ainsi que les part effectivement re&#231;u&lt;br class='autobr' /&gt;
par le lnode&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt;&lt;FONT FACE=&#034;Courier New&#034;&gt;#&lt;br class='autobr' /&gt;
srmstat &#8211;Ra &#8211;c&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;Cette commande donne la r&#233;partition des&lt;br class='autobr' /&gt;
parts CPU continuellement&lt;/p&gt;
&lt;p&gt;&lt;KBD&gt;&lt;B&gt;&lt;FONT SIZE=2&gt; &lt;/FONT&gt;&lt;/B&gt;&lt;/KBD&gt;&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p ALIGN=center&gt;Auteur : Judith DEFO&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Introduction SRM</title>
		<link>https://www.admin-sys.org/?introduction-srm</link>
		<guid isPermaLink="true">https://www.admin-sys.org/?introduction-srm</guid>
		<dc:date>2008-09-16T16:52:37Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jerome ROBERT</dc:creator>



		<description>
&lt;p&gt;SRM - Solaris Resource Manager ============================== I/ Introduction=============== SRM est un produit integre par Sun a partir du produit&#034;Share II&#034; de la societe australienne Softway : http://www.softway.com.au SRM est une application qui permet de CONTROLER et LIMITER la disponibilite des ressources d'un serveur pour des users, groupes et applications. Il permet d'allouer des pourcentages de CPU, memoire virtuelle,nombre de processus, max (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.admin-sys.org/?-srm-" rel="directory"&gt;SRM&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class=Section1&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; SRM - Solaris Resource Manager&lt;/pre&gt;&lt;pre&gt; ==============================&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;I/ Introduction&lt;/pre&gt;&lt;pre&gt;===============&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM est un produit integre par Sun a partir du produit&lt;/pre&gt;&lt;pre&gt;&#034;Share II&#034; de la societe australienne Softway: http://www.softway.com.au&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM est une application qui permet de CONTROLER et LIMITER la &lt;/pre&gt;&lt;pre&gt;disponibilite des ressources d'un serveur pour des users, groupes &lt;/pre&gt;&lt;pre&gt;et applications.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Il permet d'allouer des pourcentages de CPU, memoire virtuelle,&lt;/pre&gt;&lt;pre&gt;nombre de processus, max logins et connect times a des users et &lt;/pre&gt;&lt;pre&gt;groupes.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Cette application est ideale pour consolider des serveurs qui &lt;/pre&gt;&lt;pre&gt;hebergent plusieurs applications critiques.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM est implemente en utilisant une nouvelle classe de scheduling&lt;/pre&gt;&lt;pre&gt;SHR qui remplace les classes &#034;standards&#034; IA/TS (Time Sharing).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;II/ Concepts&lt;/pre&gt;&lt;pre&gt;===========&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.1/ Le concept des lnodes&lt;/pre&gt;&lt;pre&gt;--------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM est construit autours d'un nouveau concept introduit sous Solaris: les&lt;/pre&gt;&lt;pre&gt;'lnodes' alias 'limit nodes'. Il s'agit de nodes qui correspondent a des &lt;/pre&gt;&lt;pre&gt;UIDs au sens Solaris (definis dans /.etc/passwd ou sous NIS). Ils sont&lt;/pre&gt;&lt;pre&gt;utilises par le kernel pour appliquer les limitations de ressources a des &lt;/pre&gt;&lt;pre&gt;users, processus ou groupes de users.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les lnodes sont organises hierarchiquement en arbre: le 'scheduling tree'.&lt;/pre&gt;&lt;pre&gt;Ils seront crees relativement aux uids Solaris mais pas automatiquement,&lt;/pre&gt;&lt;pre&gt;cette t&#195;&#162;che est du ressort de l'administrateur.&lt;/pre&gt;&lt;pre&gt;D'autres lnodes peuvent &#195;&#170;tre ajoutes avec la commande 'limadm'.&lt;/pre&gt;&lt;pre&gt;Il faudra les effacer manuellement lorsque le user sera efface de la&lt;/pre&gt;&lt;pre&gt;map passwd.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Note: On peut techniquement creer un lnode qui n'a pas d'UID equivalent&lt;/pre&gt;&lt;pre&gt;dans la map passwd mais ce n'est pas recommande.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Tous les processus vont ensuite &#195;&#170;tre rattaches a un 'lnode'. le processus&lt;/pre&gt;&lt;pre&gt;'init' et ces descendants seront toujours rattaches au lnode 'root' apres&lt;/pre&gt;&lt;pre&gt;le boot de la machine.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les limites sont ensuite affectees a chaque lnodes du scheduling tree.&lt;/pre&gt;&lt;pre&gt;Les limites du root lnode doivent &#195;&#170;tre laissees a zero. Zero voulant&lt;/pre&gt;&lt;pre&gt;dire 'pas de limite'.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Il existe deux classes de ressources:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; a/ FIXED resources (ou non-renewable resources)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; Il s'agit de ressources disponibles en quantite finie.&lt;/pre&gt;&lt;pre&gt; (number of logins, connect time). &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; b/ RENEWABLE resources&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; Resources disponibles en continu comme le temps CPU:&lt;/pre&gt;&lt;pre&gt; ce sont des ressources qui une fois consommees ne sont plus &lt;/pre&gt;&lt;pre&gt; reclamables.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les users se verront alloues dynamiquement par le SHR scheduler &lt;/pre&gt;&lt;pre&gt;le temps cpu en proportion du nombre de 'shares' qui leur auront&lt;/pre&gt;&lt;pre&gt;ete alloues un peu comme dans une societe commerciale. &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A chaque lnode est affecte un nombre de 'shares', qui permettra de&lt;/pre&gt;&lt;pre&gt;recalculer la priorite des threads d'un processus. La nouvelle&lt;/pre&gt;&lt;pre&gt;priorite est calculee a chaque 'tick' suivant la formule:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; CPU_usage x (# active_process)&lt;/pre&gt;&lt;pre&gt;new_SRM_priority = current_SRM_priority + ------------------------------&lt;/pre&gt;&lt;pre&gt; (# of shares) x (# of shares)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Seuls les lnodes actifs (ceux ayant des processus running attaches)&lt;/pre&gt;&lt;pre&gt;seront calcules. Le CPU_usage de chaque lnode va donc augmenter.&lt;/pre&gt;&lt;pre&gt;Le SHR scheduler va ajuster les priorites pour forcer les ratios relatifs&lt;/pre&gt;&lt;pre&gt;de CPU_usage a converger vers les ratios relatifs des CPU shares pour&lt;/pre&gt;&lt;pre&gt;tous les lnodes actifs. De facon a ce qu'a LONG TERME, chaque user&lt;/pre&gt;&lt;pre&gt;recoive bien le CPU_usage relatif a son nombre de shares.&lt;/pre&gt;&lt;pre&gt;Il s'agit d'un 'long term scheduler', les ajustement se font lentement&lt;/pre&gt;&lt;pre&gt;par modifications des priorites.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.2/ Avantages du SRM scheduler&lt;/pre&gt;&lt;pre&gt;-------------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;- SRM permet de scheduler des users &amp; applications plut&#195;&#180;t que&lt;/pre&gt;&lt;pre&gt;des processus (comme le fait le scheduler standard).&lt;/pre&gt;&lt;pre&gt;Chaque processus etant associe a un lnode sur lequel sont positionnees&lt;/pre&gt;&lt;pre&gt;des limites.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;- Ce scheduler ne &#034;gaspillera&#034; jamais de temps CPU: m&#195;&#170;me si un user a une&lt;/pre&gt;&lt;pre&gt;limite tres faible, si personne d'autre n'utilise la CPU il se verra alloue&lt;/pre&gt;&lt;pre&gt;toutes les ressources.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;- La limitation sur la memoire virtuelle est geree en utilisant un modele de&lt;/pre&gt;&lt;pre&gt;ressource fixe. On peut limiter la consommation d'un processus en memoire &lt;/pre&gt;&lt;pre&gt;virtuelle et ainsi eviter qu'une application (suite a un memory leak par &lt;/pre&gt;&lt;pre&gt;exemple) s'approprie toute la memoire. On evite ainsi un possible bloquage &lt;/pre&gt;&lt;pre&gt;de la machine.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;- Le nombre de processus qu'un user peut lancer est controle selon un modele&lt;/pre&gt;&lt;pre&gt;de ressource fixe avec limites hierarchiques.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;- On peut aussi gerer des limites sur le nombre de logins et le temps de &lt;/pre&gt;&lt;pre&gt;connexion toujours de facon hierarchique.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;La cle d'une bonne gestion des ressources sous SRM repose sur une bonne&lt;/pre&gt;&lt;pre&gt;conception de l'arbre hierarchique des lnodes et des limites definies&lt;/pre&gt;&lt;pre&gt;pour chaque lnode.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.3/ Un exemple simple&lt;/pre&gt;&lt;pre&gt;----------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Nous allons mettre en place le controle des ressources pour 2 users&lt;/pre&gt;&lt;pre&gt;seulement: wallace et gromit. Ces deux users vont consommer de grandes&lt;/pre&gt;&lt;pre&gt;quantites de CPU mais a des moments differents de la journee.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; +---------+&lt;/pre&gt;&lt;pre&gt; | root |&lt;/pre&gt;&lt;pre&gt; | CPU=100 |&lt;/pre&gt;&lt;pre&gt; +---------+&lt;/pre&gt;&lt;pre&gt; / \&lt;/pre&gt;&lt;pre&gt; / \&lt;/pre&gt;&lt;pre&gt; / \&lt;/pre&gt;&lt;pre&gt; +---------------+ +---------------+&lt;/pre&gt;&lt;pre&gt; | wallace | | gromit |&lt;/pre&gt;&lt;pre&gt; | cpu.shares=50 | | cpu.shares=50 |&lt;/pre&gt;&lt;pre&gt; +---------------+ +---------------+&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Wallace et Gromit ont ete integres dans la hierarchie SRM comme&lt;/pre&gt;&lt;pre&gt;fils du user 'root' avec les commandes suivantes:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limadm set sgroup=root wallace &lt;/pre&gt;&lt;pre&gt;# limadm set sgroup=root gromit &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les valeurs des shares pour les 2 users ont ete positionnees par les&lt;/pre&gt;&lt;pre&gt;commandes suivantes:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limadm set cpu.shares=50 wallace&lt;/pre&gt;&lt;pre&gt;# limadm set cpu.shares=50 gromit&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;On peut verifier toutes ces informations avec:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# liminfo -c wallace&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Attention: seul les lnodes ayant des processus attaches et actifs seront pris&lt;/pre&gt;&lt;pre&gt;en compte pour le calcul des limites: si par exemple le lnode 'gromit' n'a &lt;/pre&gt;&lt;pre&gt;aucun processus actif, wallace aura 100% des ressources cpu.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.4/ La 'limit database'&lt;/pre&gt;&lt;pre&gt;-----------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Elle va contenir un lnode par UID qui sera accede par indexation directe avec&lt;/pre&gt;&lt;pre&gt;l'UID. Cette base est cree au boot de la machine par le script de demarrage&lt;/pre&gt;&lt;pre&gt;/etc/init.d/init.srm. La base est cree par defaut sous /var/srm. Cette base&lt;/pre&gt;&lt;pre&gt;appartient au user root, groupe root et seulement lisible par root.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Note: les numeros d'UID n'etant pas sequentiels, les lnodes seront donc&lt;/pre&gt;&lt;pre&gt;stockes dans un fichier a trou sous ufs (tmpfs ne supporte pas les fichiers&lt;/pre&gt;&lt;pre&gt;a trou). Seule la commande ufsdump/ufsrestore preserve le fichier a trous &lt;/pre&gt;&lt;pre&gt;(les commandes cp, tar et cpio copieront les trous comme des sequences de 0...).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;L'administrateur doit maintenir la limit database en parallele de la&lt;/pre&gt;&lt;pre&gt;map passwd. La commande suivante permet d'afficher la liste des UIDs&lt;/pre&gt;&lt;pre&gt;qui n'ont pas de lnode associe:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limreport \ !flag.real - uid lname&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Lors de la creation d'un lnode, les valeurs suivantes sont positionnees par&lt;/pre&gt;&lt;pre&gt;defaut:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . flag.real est positionne&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . cpu.shares et cpu.myshares sont fixes a 1&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . les flags 'uselimadm' et 'admin' sont devalides&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . tous les autres flags sont positionnes a 'inherit'&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . toutes les limites et attributs sont positionnes a 0&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;La commande limadm permet de detruire un lnode sans detruire le user&lt;/pre&gt;&lt;pre&gt;correspondant dans la map passwd. Il faut &#195;&#170;tre root pour utiliser limadm&lt;/pre&gt;&lt;pre&gt;ET avoir le flag 'uselimadm' positionne (ou avoir un flag 'admin' mais&lt;/pre&gt;&lt;pre&gt;on ne peut dans ce cas detruire que les lnodes du groupe dont on est leader). &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.5/ La notion de shares&lt;/pre&gt;&lt;pre&gt;------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Le SHR scheduler va controler l'allocation des ressources cpu. Le concept&lt;/pre&gt;&lt;pre&gt;des 'shares' va permettre de controler facilement les allocations entre &lt;/pre&gt;&lt;pre&gt;differents users, groupes et applications.&lt;/pre&gt;&lt;pre&gt;La notion de shares est analogue a celle d'une societe: ce qui est important,&lt;/pre&gt;&lt;pre&gt;ce n'est pas le nombre absolu de shares qu'on possede mais le nombre relatif&lt;/pre&gt;&lt;pre&gt;de shares par rapport aux autres actionnaires.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Il y a 4 attributs par lnodes pour definir les shares:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . cpu.shares: permet de fixer le ratio de cpu que ce lnode pourra&lt;/pre&gt;&lt;pre&gt; utiliser par rapport aux autres lnodes.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . cpu.myshares: valable seulement si le lnode possede des fils actifs,&lt;/pre&gt;&lt;pre&gt; il s'agit de la part de share attribuee a chaque lnode.&lt;/pre&gt;&lt;pre&gt; Il permet de fixer le ratio de CPU que ce lnode pourra &lt;/pre&gt;&lt;pre&gt; utiliser par rapport a ses fils.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . cpu.usage: cet attribut est augmente a chaque 'tick' horloge &lt;/pre&gt;&lt;pre&gt; lorsqu'un lnode a utilise la cpu pendant 1 tick, cet &lt;/pre&gt;&lt;pre&gt; valeur est diminuee suivant un taux defini par le &lt;/pre&gt;&lt;pre&gt; parametre global SRM 'usage decay rate' suivant un &lt;/pre&gt;&lt;pre&gt; algorithme exponentiel base sur les periodes de demi-vie...&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . cpu.accrue: cet attribut est similaire a cpu.usage mais la &lt;/pre&gt;&lt;pre&gt; diminution du 'decay usage rate' n'est pas appliquee.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les valeurs de cpu.shares et cpu.myshares vont permettre de calculer&lt;/pre&gt;&lt;pre&gt;un pourcentage d'allocation cpu pour chaque lnode dans l'arbre. &lt;/pre&gt;&lt;pre&gt;Les 'shares' des users inactifs seront evidemment redistribues aux &lt;/pre&gt;&lt;pre&gt;users actifs: si un seul user est actif, alors ce user aura 100%&lt;/pre&gt;&lt;pre&gt;des ressources cpu disponibles.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Le share alloue a un lnode et son cpu.usage vont permettre de determiner quel&lt;/pre&gt;&lt;pre&gt;est son 'effective share' calcule en temps reel.&lt;/pre&gt;&lt;pre&gt;Le scheduler SRM va ajuster en permanence les priorites des processus&lt;/pre&gt;&lt;pre&gt;attaches a un lnode pour que le pourcentage de cpu utilise soit toujours&lt;/pre&gt;&lt;pre&gt;proportionnel a &#034;l'effective share&#034; de ce lnode.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Note: Tous les processus attaches a un lnode ont des donnees specifiques SRM&lt;/pre&gt;&lt;pre&gt;dont le 'sharepri': a tout moment le processus avec la valeur de 'sharepri'&lt;/pre&gt;&lt;pre&gt;la plus faible sera le plus elligible pour &#195;&#170;tre schedule sur une CPU.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les autres limites controlables sont:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . memory.limit: permet de limiter la quantite de memoire virtuelle&lt;/pre&gt;&lt;pre&gt; que le lnode pourra utiliser. Lorsque la limite est&lt;/pre&gt;&lt;pre&gt; atteinte, les appels syteme du type malloc() renvoie&lt;/pre&gt;&lt;pre&gt; un code d'erreur.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . memory.plimit: permet de limiter la quantite de memoire virtuelle&lt;/pre&gt;&lt;pre&gt; par processus attaches a un lnode donne (idem que&lt;/pre&gt;&lt;pre&gt; memory.limit mais par processus).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . process.limit: permet de limiter le nombre maximal de processus&lt;/pre&gt;&lt;pre&gt; pouvant s'attacher au lnode (limitation du nombre &lt;/pre&gt;&lt;pre&gt; de processus parallele).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.6/ Les lnodes speciaux&lt;/pre&gt;&lt;pre&gt;------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . srmidle: cet lnode predefini est en charge de comptabiliser tous&lt;/pre&gt;&lt;pre&gt; les temps idle cpu. Ce lnode a un share egal a 0 pour que les&lt;/pre&gt;&lt;pre&gt; processus lances le soient uniquement lorsque aucun autre processus &lt;/pre&gt;&lt;pre&gt; ne tourne (au boot, par defaut, srmidle est le root lnode).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . srmother: cet lnode est cree lors de l'install (egal au lnode root&lt;/pre&gt;&lt;pre&gt; par defaut) et a un share egal a 1 pour assurer que les processus qui&lt;/pre&gt;&lt;pre&gt; y sont rattaches aient acces a la cpu. Les nouveaux users y seront&lt;/pre&gt;&lt;pre&gt; attaches.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . srmlost: 'setuid' sous Solaris va avoir comme effet de bord &lt;/pre&gt;&lt;pre&gt; d'attacher le processus appelant au nouveau lnode. Si cette derniere&lt;/pre&gt;&lt;pre&gt; operation echoue (lnode inexistant...): alors le processus est attache&lt;/pre&gt;&lt;pre&gt; au lost lnode (srmlost). srmlost a un share egal a 1.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.7/ Un scheduling tree plus complexe&lt;/pre&gt;&lt;pre&gt;-------------------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Essayons de calculer les pourcentage de cpu effectifs attribues aux lnodes&lt;/pre&gt;&lt;pre&gt;du scheduling tree ci-dessous:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; +-------------- R 1,1 ------------------------+ &lt;/pre&gt;&lt;pre&gt; / | \&lt;/pre&gt;&lt;pre&gt; / | \&lt;/pre&gt;&lt;pre&gt; ** / | \&lt;/pre&gt;&lt;pre&gt; +--- A 3,1 + M 1,2 +- W 1,0 +&lt;/pre&gt;&lt;pre&gt; / | \ | / \&lt;/pre&gt;&lt;pre&gt; / | \ | / \&lt;/pre&gt;&lt;pre&gt;/ | * \ *** | / \&lt;/pre&gt;&lt;pre&gt;B 2 C 2 +- D 2 + N 2 X 2,0 Y 1&lt;/pre&gt;&lt;pre&gt; / | \ |&lt;/pre&gt;&lt;pre&gt; / | \ |&lt;/pre&gt;&lt;pre&gt; / | \ Z 2&lt;/pre&gt;&lt;pre&gt; E 2 F 2 G 2&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Convention:&lt;/pre&gt;&lt;pre&gt;----------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les lnodes sont notes [NAME share,myshare], donc le premier lnode root avec &lt;/pre&gt;&lt;pre&gt;un share=1 et myshare=1 est note R 1,1.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les * representent les processus attaches au lnode associe, on voit que A &lt;/pre&gt;&lt;pre&gt;a 2 processus actifs alors que C n'en a qu'un seul.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Comment calculer les priorites effectives liees a cet arbre ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;a/ Tout d'abord: seuls les lnodes ayant des PROCESS ACTIFS dans leur &lt;/pre&gt;&lt;pre&gt;sous-arbre sont pris en compte dans le calcul en temps reel des pourcentages&lt;/pre&gt;&lt;pre&gt;de cpu relatifs a allouer a chaque lnode.&lt;/pre&gt;&lt;pre&gt;Donc, au premier niveau sous le lnode root, seuls les lnodes A et M seront &lt;/pre&gt;&lt;pre&gt;pris en compte pour les calculs !&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;b/ 'A' possede 3 shares alors que 'M' n'en a qu'un seul: donc le total etant 4, &lt;/pre&gt;&lt;pre&gt;'A' se verra alloue 3/4 (75%) des ressources CPU pour son sous-arbre alors que &lt;/pre&gt;&lt;pre&gt;'M' aura 1/4 (25%).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Si 'X' avait eu des processus actifs par exemple le calcul aurait ete&lt;/pre&gt;&lt;pre&gt;completement different et on aurait eu la distribution suivante pour le &lt;/pre&gt;&lt;pre&gt;premier niveau de l'arbre:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; A = 3/5 (60%)&lt;/pre&gt;&lt;pre&gt; M = 1/5 (20%)&lt;/pre&gt;&lt;pre&gt; W = 1/5 (20%)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;c/ Apres cela, pour calculer la valeur attribuee au seul noeud 'A', il faut&lt;/pre&gt;&lt;pre&gt;utiliser la valeur du 'cpu.myshare'. Pour 'A', myshare=1 donc 'A' aura 1/3 &lt;/pre&gt;&lt;pre&gt;des ressources calculees precedemment soit 75% * 1/3 = 25%. 'C' etant le seul &lt;/pre&gt;&lt;pre&gt;a posseder des processus actifs va recuperer les 2/3 restants soit 50%.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;d/ 'M' n'ayant pas de processus actifs, 'N' va donc recuperer la totalite&lt;/pre&gt;&lt;pre&gt;des ressources allouees pour cette partie de l'arbre soit 25%.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Resume des pourcentages alloues au lnodes et processus associes:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; A=25% M=25%&lt;/pre&gt;&lt;pre&gt; process1=12.5% &lt;/pre&gt;&lt;pre&gt; process2=12.5%&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; C=50% N=25%&lt;/pre&gt;&lt;pre&gt; process3=50% process4=8.3%&lt;/pre&gt;&lt;pre&gt; process5=8.3%&lt;/pre&gt;&lt;pre&gt; process6=8.3%&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Attention car ces chiffres varient dynamiquement en permanence au fur&lt;/pre&gt;&lt;pre&gt;et a mesure que les processus sont crees et detruits...&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;2.8/ Utilisation de SRM avec les SGBD&lt;/pre&gt;&lt;pre&gt;-------------------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM peut &#195;&#170;tre utilise pour limiter les ressources utilisees par une base&lt;/pre&gt;&lt;pre&gt;de donnees mais seulement sous certaines conditions.&lt;/pre&gt;&lt;pre&gt;En effet, il existe 2 modes principaux dans lequels sont utilisees les bases&lt;/pre&gt;&lt;pre&gt;de donnees:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . mode 2n: &lt;/pre&gt;&lt;pre&gt; Dans ce mode, un processus SEPAR&#195;&#8240; existe pour chaque user utilisant &lt;/pre&gt;&lt;pre&gt; la base de donnees.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . mode Multi Threaded Server (MTS):&lt;/pre&gt;&lt;pre&gt; Dans ce mode, un seul processus multi-threade sert tous les user de&lt;/pre&gt;&lt;pre&gt; la base.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Une base en mode MTS ne sera pas controlable par SRM car tous les users &lt;/pre&gt;&lt;pre&gt;vont utiliser les ressources sous le m&#195;&#170;me UID (UID=oracle par exemple).&lt;/pre&gt;&lt;pre&gt;Des bases comme Oracle 8i par exemple fournissent les moyens de fixer des&lt;/pre&gt;&lt;pre&gt;restrictions sur les allocations cpu par query ou par users.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;En revanche, une base en mode 2n sera facilement controlable sous SRM dans&lt;/pre&gt;&lt;pre&gt;la mesure ou chaque user utilise son propre UID.&lt;/pre&gt;&lt;pre&gt;En mode 2n, Oracle forque un &#034;Oracle shadow process&#034; pour chaque user&lt;/pre&gt;&lt;pre&gt;qui s'attache a la base. Ce shadow process s'attache ensuite a la zone&lt;/pre&gt;&lt;pre&gt;centrale de memoire partagee de la base et effectue ses I/O directement&lt;/pre&gt;&lt;pre&gt;sur les fichiers de la base.&lt;/pre&gt;&lt;pre&gt;(M&#195;&#170;me si les shadow process passent par un setuid(), ils ne vont pas &lt;/pre&gt;&lt;pre&gt;s'attacher a un lnode SRM different, car le lnode est affecte lors du setuid() au moment&lt;/pre&gt;&lt;pre&gt;du login et n'est pas transfere lors des setuid() ulterieurs).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;En mode client/serveur 2n, le processus &#034;Oracle network listener&#034; accepte une&lt;/pre&gt;&lt;pre&gt;connexion venant d'un client de la base et demarre le &#034;shadow process&#034; pour ce&lt;/pre&gt;&lt;pre&gt;user. Il faut dans ce cas modifier les fichiers de demarrage de la base&lt;/pre&gt;&lt;pre&gt;pour que le &#034;oracle listener&#034; attache le &#034;shadow process&#034; au bon lnode.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;a/ Creation des lnodes:&lt;/pre&gt;&lt;pre&gt;limadm set sgroup=root:flag.uselimadm=set oracle&lt;/pre&gt;&lt;pre&gt;limadm set sgroup=wh:cpu.shares=20:memory.limit=400M test1&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;le flag flag.uselimadm autorise le lnode oracle a utiliser la commande&lt;/pre&gt;&lt;pre&gt;srmuser.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;b/ Exemple de demarrage des listeners dans les scripts de demarrage oracle:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;% cat /etc/rc3.d/S98oracle&lt;/pre&gt;&lt;pre&gt;#!/bin/ksh&lt;/pre&gt;&lt;pre&gt;...&lt;/pre&gt;&lt;pre&gt;ORA_HOME=/ora/OraHome1&lt;/pre&gt;&lt;pre&gt;ORACLE_SID=instance1&lt;/pre&gt;&lt;pre&gt;ORA_OWNER=oracle&lt;/pre&gt;&lt;pre&gt;...&lt;/pre&gt;&lt;pre&gt;case &#034;$1&#034; in&lt;/pre&gt;&lt;pre&gt;'start')&lt;/pre&gt;&lt;pre&gt;[...]&lt;/pre&gt;&lt;pre&gt;su $ORA_OWNER -c &#034;/usr/srm/bin/srmuser test1 $ORA_HOME/bin/lsnrctl start &#034; &amp;&lt;/pre&gt;&lt;pre&gt;[...]&lt;/pre&gt;&lt;pre&gt;ORACLE_SID=instance2&lt;/pre&gt;&lt;pre&gt;su $ORA_OWNER -c &#034;/usr/srm/bin/srmuser test1 $ORA_HOME/bin/lsnrctl start &#034; &amp;&lt;/pre&gt;&lt;pre&gt;[...]&lt;/pre&gt;&lt;pre&gt;etc...&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;c/ Verification:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Suite a ce demarrage plus lancement d'une requete sur l'instance:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# ps -eaf | grep ora&lt;/pre&gt;&lt;pre&gt; oracle 335 333 0 08:53:06 pts/1 0:00 -ksh&lt;/pre&gt;&lt;pre&gt; oracle 431 335 1 10:14:52 pts/1 0:00 sqlplus system/manager@TEST8&lt;/pre&gt;&lt;pre&gt; oracle 409 1 0 10:13:18 ? 0:00 /ora/OraHome1/bin/tnslsnr LISTENER &lt;/pre&gt;&lt;pre&gt;-inherit&lt;/pre&gt;&lt;pre&gt; oracle 433 1 2 10:14:53 ? 0:01 oracletest8 &lt;/pre&gt;&lt;pre&gt;(DESCRIPTION=(LOCAL=no)(ADDRESS=(PROTOCOL=BEQ)))&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# ./limid -p 433&lt;/pre&gt;&lt;pre&gt;1001&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# ./limid -p 409&lt;/pre&gt;&lt;pre&gt;1001&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# grep test1 /etc/passwd&lt;/pre&gt;&lt;pre&gt;test1:x:1001:10::/tmp/test1:/bin/sh&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;# ./liminfo test1&lt;/pre&gt;&lt;pre&gt;Login name: test1 Uid (Real,Eff): 1001 (-,-) &lt;/pre&gt;&lt;pre&gt;Sgroup (uid): wh (1002) Gid (Real,Eff): 10 (-,-) &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Shares: 1 Myshares: 1 &lt;/pre&gt;&lt;pre&gt;Share: 33.33 % E-share: 0.006 % &lt;/pre&gt;&lt;pre&gt;Usage: 12130.5 Accrued usage: 366500 &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Mem usage: 98.1641 MB Term usage: 0s &lt;/pre&gt;&lt;pre&gt;Mem limit: 0 B Term accrue: 0s &lt;/pre&gt;&lt;pre&gt;Proc mem limit: 0 B Term limit: 0s &lt;/pre&gt;&lt;pre&gt;Mem accrue: 39.7158500 GB.s&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Processes: 2 Current logins: 0 &lt;/pre&gt;&lt;pre&gt;Process limit: 0 &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Last used: Tue Jun 20 10:13:18 2000 &lt;/pre&gt;&lt;pre&gt;Directory: /tmp/test1 &lt;/pre&gt;&lt;pre&gt;Name: &lt;/pre&gt;&lt;pre&gt;Shell: /bin/sh &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Flags: &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre&gt;IV/ Support&lt;/pre&gt;&lt;pre&gt;===========&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM n'est supporte que sur la gamme Server Ultra-Entreprise:&lt;/pre&gt;&lt;pre&gt;E250, E450, Netra 1200T, E3x00, E4x00, E5x00, E6x00 et E10000.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Pas de support des stations de travail.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM 1.0 seulement supporte sous Solaris 2.6&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM 1.1 supporte sous Solaris 2.6 et Solaris 7&lt;/pre&gt;&lt;pre&gt; supporte egalement sur les configurations cluster 2.x (including 2.2)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM1.2 supporte sous Solaris 2.6 5/98 KU 105181-11 minimum, Solaris 7&lt;/pre&gt;&lt;pre&gt;5/99 minimum ou Solaris 8. Supporte les configurations Sun Cluster 2.x&lt;/pre&gt;&lt;pre&gt;(including 2.2).&lt;/pre&gt;&lt;pre&gt;Pour utiliser avec DR sur E3x00-E6x00, il faut l'OBP 3.2.22 minimum.&lt;/pre&gt;&lt;pre&gt;Pour plus de details, voir les release notes de SRM 1.2.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Packages:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SUNWsrmb: les commandes user&lt;/pre&gt;&lt;pre&gt;SUNWsrmm: les man pages&lt;/pre&gt;&lt;pre&gt;SUNWsrma: answer book collection&lt;/pre&gt;&lt;pre&gt;SUNWsrmr: librairies et utilitaires systeme&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;3.1/ Installation&lt;/pre&gt;&lt;pre&gt;-----------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Se referrer aux releases notes pour les mises a jour de patch (notamment&lt;/pre&gt;&lt;pre&gt;le patch kernel qui est important).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Il y a un 'installer' fourni sur le CDROM SRM 1.x, il suffit de monter le&lt;/pre&gt;&lt;pre&gt;cdrom puis lancer l'installer:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# cd /cdrom0/srm_1_1&lt;/pre&gt;&lt;pre&gt;# ./Installer&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;3.2/ Les fichiers utilises par SRM&lt;/pre&gt;&lt;pre&gt;----------------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/etc/init.d/init.srm&lt;/pre&gt;&lt;pre&gt; Il s'agit du script d'initialisation de SRM lorsque&lt;/pre&gt;&lt;pre&gt; le serveur passe de single-user a multi-user.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/etc/rc0.d/K52srm&lt;/pre&gt;&lt;pre&gt;/etc/rc1.d/K52srm&lt;/pre&gt;&lt;pre&gt;/etc/rc2.d/S10srm&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/etc/srm/limconf&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/etc/srm/nolnode&lt;/pre&gt;&lt;pre&gt; Ce script cree un lnode pour un user qui se connecte et envoie &lt;/pre&gt;&lt;pre&gt; un mail a l'administrateur. Ce script peut &#195;&#170;tre remplace en modifiant&lt;/pre&gt;&lt;pre&gt; /etc/pam.conf.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/etc/system contient en standard:&lt;/pre&gt;&lt;pre&gt;[...]&lt;/pre&gt;&lt;pre&gt;*&lt;/pre&gt;&lt;pre&gt;* Solaris Resource Manager 1.0&lt;/pre&gt;&lt;pre&gt;*&lt;/pre&gt;&lt;pre&gt;set initclass=&#034;SHR&#034;&lt;/pre&gt;&lt;pre&gt; Il s'agit de l'initialisation en classe SHR du processus&lt;/pre&gt;&lt;pre&gt; init: tous les descendant vont en heriter, SRM est donc&lt;/pre&gt;&lt;pre&gt; active.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; Rq: Il suffit de commenter avec un '*' cette ligne et &lt;/pre&gt;&lt;pre&gt; rebooter le serveur pour redemarrer le serveur hors SRM.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/kernel/drv/srmdrv&lt;/pre&gt;&lt;pre&gt;/kernel/drv/srmdrv.conf&lt;/pre&gt;&lt;pre&gt;/kernel/misc/srmlim&lt;/pre&gt;&lt;pre&gt;/kernel/sched/SHR&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/dev/srmdrv -&gt; ../devices/pseudo/srmdrv@0:c,raw&lt;/pre&gt;&lt;pre&gt;/devices/pseudo/srmdrv@0:c,raw (139,0)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/lib/class/SHR/SHRdispadmin&lt;/pre&gt;&lt;pre&gt;/usr/lib/class/SHR/SHRpriocntl&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/lib/security/pam_srm.so.1&lt;/pre&gt;&lt;pre&gt;/usr/lib/srm/liblim.so.1&lt;/pre&gt;&lt;pre&gt;/usr/lib/srm/srmscru&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;3.3/ Les parametres de tuning dans /etc/system&lt;/pre&gt;&lt;pre&gt;---------------------------------------------- &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRMLnodes: Number of lnodes to cache in the kernel&lt;/pre&gt;&lt;pre&gt; 3kb per lnodes&lt;/pre&gt;&lt;pre&gt; default = 0, means that kernel will determine the value&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRMProcsPerUid: The anticiped average number of processes used by each user &lt;/pre&gt;&lt;pre&gt; default = 4 &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRMLnodesExtra: A bias used in the formula used to calculate the number of&lt;/pre&gt;&lt;pre&gt; lnodes to cache in the kernel (SRMLnodes).&lt;/pre&gt;&lt;pre&gt; default = 20&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRMNhash: The number of entries in the hash table that is used to map&lt;/pre&gt;&lt;pre&gt; UID values to lnodes in the kernel.&lt;/pre&gt;&lt;pre&gt; default = 0, means to use the same value as for the numbers&lt;/pre&gt;&lt;pre&gt; of lnodes.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRMMemoryMax: Maximum percentage of real memory to use for SRM, lnodes&lt;/pre&gt;&lt;pre&gt; and hash tables combined.&lt;/pre&gt;&lt;pre&gt; default = 20 which means 5% (1/20).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRMMemWarnFReq: The minimum interval in second between &#034;memory exceeded&#034;&lt;/pre&gt;&lt;pre&gt; notification warnings from a single node.&lt;/pre&gt;&lt;pre&gt; default = 4 i.e messages will not be sent more frequently&lt;/pre&gt;&lt;pre&gt; than 4 seconds.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;initclass: Name of the scheduling class in which the init process is&lt;/pre&gt;&lt;pre&gt; started. Under SRM this should be given as the string &#034;SHR&#034;.&lt;/pre&gt;&lt;pre&gt; default = &#034;TS&#034;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;extraclass: This is the name of a scheduling class module to load, without&lt;/pre&gt;&lt;pre&gt; using it as the default scheduling class.&lt;/pre&gt;&lt;pre&gt; To use SRM with only NON-CPU ressource control add the line:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; set extraclass=&#034;SHR&#034;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;3.4/ Les differentes commandes SRM&lt;/pre&gt;&lt;pre&gt;----------------------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/bin/liminfo&lt;/pre&gt;&lt;pre&gt; Cette commande permet d'afficher les usages, limites et privileges&lt;/pre&gt;&lt;pre&gt; lies a un user donne. Les administrateurs ont les privileges pour&lt;/pre&gt;&lt;pre&gt; faire des requ&#195;&#170;tes sur d'autres users.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/bin/limreport&lt;/pre&gt;&lt;pre&gt; Cette commande permet permet aux administrateurs de faire des requetes&lt;/pre&gt;&lt;pre&gt; pour connaitre n'importe quel parametre de n'importe quel user (y&lt;/pre&gt;&lt;pre&gt; compris les attributs 'accrues').&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; # limreport 'cpu.accrue!=0' '%u %u %10d\n' uid lname cpu.accrue&lt;/pre&gt;&lt;pre&gt; Selectionne les lnodes avec une 'accrued usage' different de 0 et&lt;/pre&gt;&lt;pre&gt; liste les uids et 'accrued usages' des lnodes selectionnes. &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/bin/srmkill&lt;/pre&gt;&lt;pre&gt; Permet de tuer tous les processus attaches a un lnode donne.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/bin/srmstat&lt;/pre&gt;&lt;pre&gt; Permet d'afficher des informations relatives a l'activite&lt;/pre&gt;&lt;pre&gt; sur les lnodes en temps reel.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/bin/srmuser&lt;/pre&gt;&lt;pre&gt; Permet de lancer des applications sous un lnode donne.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/lib/limdaemon&lt;/pre&gt;&lt;pre&gt; Il s'agit du user-mode daemon qui est demarre au run level 2 et/ou 3.&lt;/pre&gt;&lt;pre&gt; Il est lance avec la classe SHR et permet l'envoi de notifications &lt;/pre&gt;&lt;pre&gt; vers le terminal, gere les connect-time usages de tous les users, &lt;/pre&gt;&lt;pre&gt; detecte les users qui ont depasse leur limite de connect-time. &lt;/pre&gt;&lt;pre&gt; Ce daemon enverra les notifications aux users ayants depasses leur&lt;/pre&gt;&lt;pre&gt; limite en memoire et/ou nombre de processus par exemple.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/sbin/limadm&lt;/pre&gt;&lt;pre&gt; Cette commande permet de modifier les limites fixees sur les lnodes,&lt;/pre&gt;&lt;pre&gt; les flags et autres attributs SRM.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/sbin/srmadm&lt;/pre&gt;&lt;pre&gt; Permet de positionner, modifier et afficher les parametres&lt;/pre&gt;&lt;pre&gt; globaux SRM. Les differents parametres peuvent &#195;&#170;tre modifies&lt;/pre&gt;&lt;pre&gt; &#034;on the fly&#034;. &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; # srmadm set -f /var/srm/srmDB fileopen=y:share=y:limits=y&lt;/pre&gt;&lt;pre&gt; Demmarre le SRM avec le CPU scheduler, et les limitations de&lt;/pre&gt;&lt;pre&gt; ressources.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; # srmadm set usagedecay=300s&lt;/pre&gt;&lt;pre&gt; Positionne le CPU usage decay a un temps de demi-vie de 5s.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; # srmadm&lt;/pre&gt;&lt;pre&gt; Affiche les parametres courants&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; # srmadm show -dv&lt;/pre&gt;&lt;pre&gt; Affiche les parametres par defaut.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; # srmstat -Rac&lt;/pre&gt;&lt;pre&gt; Affiche et raffraichi en permanence des statistiques sur les&lt;/pre&gt;&lt;pre&gt; usages cpu des differents users.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/unsupport/passwd_lnodes&lt;/pre&gt;&lt;pre&gt; Commande non supportee qui permet de creer automatiquement les&lt;/pre&gt;&lt;pre&gt; lnodes correspondants aux uids n'ayant pas encore de lnode. On peut&lt;/pre&gt;&lt;pre&gt; faire un 'show' pour voir quels lnodes seront crees et lequels, puis&lt;/pre&gt;&lt;pre&gt; il suffit de relancer la commande avec l'option 'do':&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; voyager:root# ./passwd_lnodes show&lt;/pre&gt;&lt;pre&gt; Looking for UIDs in the range &gt;= 0 and &lt; 59901&lt;/pre&gt;&lt;pre&gt; 3 missing lnode(s).&lt;/pre&gt;&lt;pre&gt; limadm set -u cpu.shares=1 18483&lt;/pre&gt;&lt;pre&gt; limadm set -u cpu.shares=1 985&lt;/pre&gt;&lt;pre&gt; limadm set -u cpu.shares=1 18175&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/unsupport/schedtree&lt;/pre&gt;&lt;pre&gt; Cette commande (non supportee) permet d'afficher en ascii une&lt;/pre&gt;&lt;pre&gt; representation hierarchique des lnodes definis sur une machine:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;voyager:root# ./schedtree&lt;/pre&gt;&lt;pre&gt; root smtp(0) [1]&lt;/pre&gt;&lt;pre&gt; daemon(1) [1]&lt;/pre&gt;&lt;pre&gt; bin(2) [1]&lt;/pre&gt;&lt;pre&gt; sys(3) [1]&lt;/pre&gt;&lt;pre&gt; adm(4) [1]&lt;/pre&gt;&lt;pre&gt; lp(71) [1]&lt;/pre&gt;&lt;pre&gt; uucp(5) [1]&lt;/pre&gt;&lt;pre&gt; nuucp(9) [1]&lt;/pre&gt;&lt;pre&gt; listen(37) [1]&lt;/pre&gt;&lt;pre&gt; srmidle(41) [0]&lt;/pre&gt;&lt;pre&gt; srmlost(42) [1]&lt;/pre&gt;&lt;pre&gt; srmother(43) [1]&lt;/pre&gt;&lt;pre&gt; oracle(107) [1]&lt;/pre&gt;&lt;pre&gt; wh(1002) [1]&lt;/pre&gt;&lt;pre&gt; test1(1001) [1]&lt;/pre&gt;&lt;pre&gt; ^ ^&lt;/pre&gt;&lt;pre&gt; | |&lt;/pre&gt;&lt;pre&gt; uid shares&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;3.5/ La phase de boot&lt;/pre&gt;&lt;pre&gt;---------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM s'initialise apres le processus 0 (sched: le swapper) et avant la creation &lt;/pre&gt;&lt;pre&gt;du processus 1 (init). La classe SHR est alors loadee, le processus 'init' est &lt;/pre&gt;&lt;pre&gt;donc schedule sous SRM (et non dans la classe de scheduling par defaut).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Le systeme execute ensuite les scripts de demarrage et passe de single-user a&lt;/pre&gt;&lt;pre&gt;multi-user et le script /etc/init.d/init.srm est lance.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;3.6/ Troubleshooting&lt;/pre&gt;&lt;pre&gt;--------------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;a/ Un user ne peut pas se loguer ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Raisons possibles:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . pas de lnode correspondant a cet uid (message No limits information&lt;/pre&gt;&lt;pre&gt; is available).&lt;/pre&gt;&lt;pre&gt; . le user a le flag nologin (ou noattach)&lt;/pre&gt;&lt;pre&gt; . le user a le flage onelogin et est a deja un autre terminal connecte&lt;/pre&gt;&lt;pre&gt; . le user a atteint la limite de connect-time usage&lt;/pre&gt;&lt;pre&gt; . le lnode du user est orphelin suite a la destruction du lnode parent&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;b/ Les users ne sont pas notifies des depassement de limite ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . le daemon responsable des notifications (limdaemon) ne tourne pas&lt;/pre&gt;&lt;pre&gt; . la console n'est pas au premier plan ou cachee&lt;/pre&gt;&lt;pre&gt; . limdaemon n'a pas assez de ressources memoire pour fonctionner&lt;/pre&gt;&lt;pre&gt; (message a la console seulement lors de la premiere tentative qui&lt;/pre&gt;&lt;pre&gt; echoue).&lt;/pre&gt;&lt;pre&gt; . le fichier utmp n'existe pas et/ou est corrompu&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;c/ Impossible de changer un user de groupe ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Pour changer un user de groupe il faut:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . &#195;&#170;tre super-user&lt;/pre&gt;&lt;pre&gt; . avoir le flag 'uselimadm' positionne&lt;/pre&gt;&lt;pre&gt; . avoir le flag 'admin' positionne et &#195;&#170;tre un 'group header' pour&lt;/pre&gt;&lt;pre&gt; le lnode a modifier. &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;d/ Les users depassent les limites tres frequemment ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . une limite est effectivement trop faible par rapport aux besoin&lt;/pre&gt;&lt;pre&gt; de ce user&lt;/pre&gt;&lt;pre&gt; . l'attribut 'usage' n'est pas 'decayed'&lt;/pre&gt;&lt;pre&gt; . la periode entre 2 executions de 'limdecay' est trop faible&lt;/pre&gt;&lt;pre&gt; . l'attribut 'decay' pour une ressource de type 'renewable' est&lt;/pre&gt;&lt;pre&gt; trop faible&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;e/ Message de notification d'origine inconnue ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; Les messages de notification a un 'group header' seront recu par tous &lt;/pre&gt;&lt;pre&gt; les users dans la branche hierarchique en dessous de ce group header.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;f/ La base des limites sous /var/srm est corrompue ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; Si la corruption est prouvee, il faudra restaurer la base avec ufsdump&lt;/pre&gt;&lt;pre&gt; ou a partir d'un 'dump' de la base effectue au prealable avec la&lt;/pre&gt;&lt;pre&gt; commande limreport (voir section FAQs). &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;g/ Les connect-time ne sont pas bien mis a jour ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; Ceci est probablement du au fait que le daemon 'limdaemon'&lt;/pre&gt;&lt;pre&gt; ne tourne pas.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;h/ Problemes de performances ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Attention, car SRM ne controle que les processus sous la classe SHR, si des&lt;/pre&gt;&lt;pre&gt;des demandes excessives sont realisees par des processus de priorite&lt;/pre&gt;&lt;pre&gt;superieure (processus lances en RT par exemple), alors SHR ne peut &lt;/pre&gt;&lt;pre&gt;scheduler les processus que sur la base de la cpu restante.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;D'une maniere generale, l'utilistaion de processus en RT (RealTime) va&lt;/pre&gt;&lt;pre&gt;generer des conflits avec l'utilisation de SRM. Les processus sous la&lt;/pre&gt;&lt;pre&gt;classe SHR auront des priorites toujours inferieures a RT.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Attention a ne pas mixer egalement trop de processus en classe SYS ou TA&lt;/pre&gt;&lt;pre&gt;lors de l'utilisation de SRM, ceci va reduire la qualite du fonctionnement &lt;/pre&gt;&lt;pre&gt;du scheduler SHR.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;i/ Les lnodes orphelins ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Un lnode est orphelin lorsque son lnode parent a ete detruit. SRM va empecher&lt;/pre&gt;&lt;pre&gt;tout processus de s'attacher a un lnode orphelin, ceci a comme effet de bord&lt;/pre&gt;&lt;pre&gt;qu'il est impossible de se loguer sous ce lnode !&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Le moyen le plus facile pour detecter les lnodes orphelins est:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limreport orphan - uid sgroup lname&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;On peut ensuite utiliser 'limadm' pour rattacher cet lnode a la hierarchie des&lt;/pre&gt;&lt;pre&gt;lnodes. L'administrateur peut egalement creer un nouveau user dont l'uid est&lt;/pre&gt;&lt;pre&gt;egal a l'uid defini dans le 'sgroup' du lnode orphelin.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;j/ Boucle dans l'arbre des lnodes&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Quand un lnode est active, tous ses parents jusqu'au root lnode sont actives.&lt;/pre&gt;&lt;pre&gt;Si un des lnodes a un parent qui a deja ete rencontre alors le kernel a&lt;/pre&gt;&lt;pre&gt;detecte une boucle...Ceci peut egalement arriver suite a une corruption de&lt;/pre&gt;&lt;pre&gt;la base des lnodes.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Il faut lister les lnodes qui sont fils du lnode root:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limreport 'sgroup=0' - uid lname&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;si on detecte un lnode qui ne doit pas &#195;&#170;tre directement fils du lnode&lt;/pre&gt;&lt;pre&gt;root, c'est peut etre le haut d'un sous-arbre qui a ete rattache au lnode root.&lt;/pre&gt;&lt;pre&gt;Il faudra surement restaurer l'arbre (cf crash recovery).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;k/ crash recovery &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Lorsque la base des lnodes sous /var/srm est corrompue, il faut la restaurer&lt;/pre&gt;&lt;pre&gt;a partir d'un dump effectue avec limreport (cf FAQs).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;IV/ FAQs&lt;/pre&gt;&lt;pre&gt;=========&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment desactiver SRM ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Retirer la ligne set initclass=&#034;SHR&#034; dans /etc/system et rebooter.&lt;/pre&gt;&lt;pre&gt;L'option -a au boot peut egalement &#195;&#170;tre utilisee, on peut alors choisir&lt;/pre&gt;&lt;pre&gt;le fichier system suivnat: etc/system.noshrload qui correspond au backup &lt;/pre&gt;&lt;pre&gt;du fichier /etc/system avant l'install de SRM (genere par l'installer).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment savoir si SRM est installe sur un serveur ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Faire un pkginfo | grep -i srm&lt;/pre&gt;&lt;pre&gt;system SUNWsrmb Solaris Resource Manager &lt;/pre&gt;&lt;pre&gt;system SUNWsrmm Solaris Resource Manager, (Man) &lt;/pre&gt;&lt;pre&gt;system SUNWsrmr Solaris Resource Manager &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;=&gt; dans ce cas SRM est installe.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment savoir si SRM est actif ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Avec la commande suivante:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# srmadm show share&lt;/pre&gt;&lt;pre&gt;yes&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Si la reponse est 'yes' alors SRM est actif.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;D'autre part la commande suivante permet de voir si la base des lnodes&lt;/pre&gt;&lt;pre&gt;est en cours d'utilisation:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# srmadm show fileopen&lt;/pre&gt;&lt;pre&gt;yes &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment savoir quels processus sont sous le controle de SRM ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Il suffit de chercher les processus ayant la classe 'SHR' avec la&lt;/pre&gt;&lt;pre&gt;commande 'ps':&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# ps -eo class,pid,comm &lt;/pre&gt;&lt;pre&gt;CLS PID COMMAND &lt;/pre&gt;&lt;pre&gt;SYS 0 sched &lt;/pre&gt;&lt;pre&gt;SHR 1 /etc/init &lt;/pre&gt;&lt;pre&gt;SYS 2 pageout &lt;/pre&gt;&lt;pre&gt;SYS 3 fsflush &lt;/pre&gt;&lt;pre&gt;SYS 4 srmgr &lt;/pre&gt;&lt;pre&gt;SHR 289 /usr/lib/saf/sac &lt;/pre&gt;&lt;pre&gt;SHR 126 /usr/sbin/rpcbind &lt;/pre&gt;&lt;pre&gt;SHR 516 -sh &lt;/pre&gt;&lt;pre&gt;SHR 95 limdaemon &lt;/pre&gt;&lt;pre&gt;[...]&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment afficher un rapport des processus courant et leur valeurs&lt;/pre&gt;&lt;pre&gt;de shares et cpu usage ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Avec la command limreport suivante (pipee dans un 'sort'):&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;voyager:root# limreport 'flag.real' - uid sgroup lname cpu.shares \&lt;/pre&gt;&lt;pre&gt; cpu.usage | sort +1n +0n&lt;/pre&gt;&lt;pre&gt;1 0 daemon 1 4.78916348357e-225&lt;/pre&gt;&lt;pre&gt;2 0 bin 1 0&lt;/pre&gt;&lt;pre&gt;3 0 sys 1 0&lt;/pre&gt;&lt;pre&gt;4 0 adm 1 0&lt;/pre&gt;&lt;pre&gt;5 0 uucp 1 2322.94519291&lt;/pre&gt;&lt;pre&gt;9 0 nuucp 1 0&lt;/pre&gt;&lt;pre&gt;37 0 listen 1 0&lt;/pre&gt;&lt;pre&gt;41 0 srmidle 0 0&lt;/pre&gt;&lt;pre&gt;42 0 srmlost 1 0&lt;/pre&gt;&lt;pre&gt;43 0 srmother 1 0&lt;/pre&gt;&lt;pre&gt;71 0 lp 1 0&lt;/pre&gt;&lt;pre&gt;107 0 oracle 1 1.13057987261e-233&lt;/pre&gt;&lt;pre&gt;1002 0 wh 1 0&lt;/pre&gt;&lt;pre&gt;2000 0 database 3 0&lt;/pre&gt;&lt;pre&gt;2001 0 finance 1 0&lt;/pre&gt;&lt;pre&gt;2002 0 batch 1 0&lt;/pre&gt;&lt;pre&gt;1001 1002 test1 1 1.74991494383e-222&lt;/pre&gt;&lt;pre&gt;2003 2000 db1 1 0&lt;/pre&gt;&lt;pre&gt;2004 2000 db2 1 0&lt;/pre&gt;&lt;pre&gt;2005 2000 db3 1 0&lt;/pre&gt;&lt;pre&gt;2006 2001 fi1 1 0&lt;/pre&gt;&lt;pre&gt;2007 2001 fi2 1 0&lt;/pre&gt;&lt;pre&gt;2008 2002 ba1 1 0&lt;/pre&gt;&lt;pre&gt;0 4294967295 root 1 3885.78587097&lt;/pre&gt;&lt;pre&gt;0 4294967295 smtp 1 3885.78587097&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;'flag.real': dit a limreport de n'afficher que les couples lnode/uid reels.&lt;/pre&gt;&lt;pre&gt;'-': indique a limreport d'afficher au mieux les parametres&lt;/pre&gt;&lt;pre&gt;'uid sgroup lname...': indique la liste des infos a afficher&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;La sortie est pipee sur un sort pour classer les valeurs selon la 2eme&lt;/pre&gt;&lt;pre&gt;colonne et suivant la premiere colonne en ordre secondaire.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment lancer SRM sans limites actives et sans le scheduling cpu actif ?&lt;/pre&gt;&lt;pre&gt;(pour du debug ou lors de la configuration initiale).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: avec la commande suivante:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# srmadm set share=n:limits=n&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Quelles ressources systemes peuvent &#195;&#170;tre controllees par SRM ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Il a 5 types de ressources controllables par SRM:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; . CPU &lt;/pre&gt;&lt;pre&gt; . Virtual Memory &lt;/pre&gt;&lt;pre&gt; . Number of Processes &lt;/pre&gt;&lt;pre&gt; . Number of Logins &lt;/pre&gt;&lt;pre&gt; . Limit Connect Time &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Que se passe-t-il lors de l'utilisation de su ou setuid ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Le processus lance avec setuid() va changer de user et par la m&#195;&#170;me occasion&lt;/pre&gt;&lt;pre&gt;de lnode, il sera donc soumis aux limitations du nouveau lnode.&lt;/pre&gt;&lt;pre&gt;Ceci est egalement vrai pour les temps de connexion par exemple grace&lt;/pre&gt;&lt;pre&gt;au Pluggable Authentication Module (PAM) 'pam_srm' (cf man pour plus&lt;/pre&gt;&lt;pre&gt;d'infos).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Attention: le lnode ne change que lorsque le effective uid change avec&lt;/pre&gt;&lt;pre&gt;l'appel systeme setuid().&lt;/pre&gt;&lt;pre&gt;D'autre part, lors d'un su d'un user X vers root, il n'y aura pas de&lt;/pre&gt;&lt;pre&gt;changement de lnode. Dans tous les autres cas (user x vers user y ou&lt;/pre&gt;&lt;pre&gt;user root vers user x), le changement de lnode se fera.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Que faire si le systeme parait tres lent et que SRM est installe ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Il faut suspecter un processus 'root' car root ne possede aucune limite &lt;/pre&gt;&lt;pre&gt;en temps CPU et peut donc 'accaparer' toutes les ressources systeme. &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Verifier aussi qu'il n'y ait pas un user qui &#034;domine&#034; le temps&lt;/pre&gt;&lt;pre&gt;cpu avec la commande suivante:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# srmstat -Rac &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Cette commande donne un resultat sous forme texte de l'usage cpu du type:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;User/group No. Proc %Cpu Mon Sep 25 15:57:28 2000&lt;/pre&gt;&lt;pre&gt;System 5 34 0.0 ==================================================|&lt;/pre&gt;&lt;pre&gt;daemon 1 1 0.0 I !| &lt;/pre&gt;&lt;pre&gt;srmother 2 0.0 I | &lt;/pre&gt;&lt;pre&gt;toto 1 6 0.0 ! I |&lt;/pre&gt;&lt;pre&gt;srmidle 1 100.0 ##################################################| &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment lister tous les lnodes d'un serveur sous SRM ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: avec la commande limreport:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;** TODO **&lt;/pre&gt;&lt;pre&gt;# limreport flag.real &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;ou avec la commande schedtree (non supportee, cf ci-dessus)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# /usr/srm/unsupport/schedtree&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment deplacer/backuper la base des lnodes SRM qui est sous /var/srm ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Seule les commandes ufsdump/ufsrestore permettent de garder la structure&lt;/pre&gt;&lt;pre&gt;&#034;a trou&#034; de ce fichier. Les commandes telles que cp, tar et cpio copieront&lt;/pre&gt;&lt;pre&gt;les trous comme des sequences de 0.&lt;/pre&gt;&lt;pre&gt;D'autres part la base peut etre &#034;dumpee&#034; en ascii puis recree ailleurs avec&lt;/pre&gt;&lt;pre&gt;les commandes:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limreport 'flag.real' - lname preserve &gt; /var/tmp/savelnodes.ascii&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;puis recree avec:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;# limadm set -f - &lt; /var/tmp/savelnodes.ascii&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: est-ce que la commande 'nice' (1) est utilisable sur un systeme sur&lt;/pre&gt;&lt;pre&gt;lequel SRM est configure ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;R: les interractions entre 'nice' et les processus sous la classe SHR&lt;/pre&gt;&lt;pre&gt;sont assez compliquees. 'nice' permet sous Solaris de reduire la priorite &lt;/pre&gt;&lt;pre&gt;d'un processus de facon a ce qu'un processus normal ne soit pas ralenti par&lt;/pre&gt;&lt;pre&gt;des processus non urgents. Sous SRM, la commande nice va diminuer &lt;/pre&gt;&lt;pre&gt;le decompte du cpu time utilise a une priorite inferieure.&lt;/pre&gt;&lt;pre&gt;Pour plus de details, voir &#034;Relation ship to Other Resource control features&#034;&lt;/pre&gt;&lt;pre&gt;dans l'answerbook.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment empecher un processus lance en batch (crontab) de se lancer&lt;/pre&gt;&lt;pre&gt;en dehors de la plage horaire prevue ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: On peut avec SRM lancer des scripts qui ne pourrons s'executer&lt;/pre&gt;&lt;pre&gt;qu'a des heures specifiques avec limadm dans la crontab sur le lnode&lt;/pre&gt;&lt;pre&gt;'batch':&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;0 6 * * * /usr/srm/bin/limadm set flag.nologin=set batch&lt;/pre&gt;&lt;pre&gt;0 18 * * * /usr/srm/bin/limadm set flag.nologin=clear batch&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;=&gt; Le batch ne pourra pas se lancer a 6:00 a.m (pas de permission&lt;/pre&gt;&lt;pre&gt;pour se loguer), par contre il pourra a partir de 18:00.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Comment se comporte SRM en cas de DR ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Le scheduler SRM connait en permanence le nombre de CPUs disponibles y &lt;/pre&gt;&lt;pre&gt;compris en cas de DR, donc aucun impact (supporte).&lt;/pre&gt;&lt;pre&gt;Pas d'impact non plus sur les limites en taille memoire (SRM ne contr&#195;&#180;le&lt;/pre&gt;&lt;pre&gt;les limites que sur la memoire virtuelle).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Quelles sont les limitations sur les processus attaches au 'root' lnode ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: Les processus attaches au 'root' lnode sont schedules d'une maniere &lt;/pre&gt;&lt;pre&gt;particuliere et pourront obtenir toutes les ressources CPU qu'ils demandent.&lt;/pre&gt;&lt;pre&gt;Le processus 'init' est attache au 'root' lnode. Tous les daemons systeme&lt;/pre&gt;&lt;pre&gt;seront donc attaches au 'root' lnode. Il faudra ajouter une commande &lt;/pre&gt;&lt;pre&gt;'srmuser' explicite dans les scripts de demarrage pour les attacher a un &lt;/pre&gt;&lt;pre&gt;autre lnode specifique.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;ex: &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;/usr/srm/bin/srmuser network in.named&lt;/pre&gt;&lt;pre&gt;[..]&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Q: Que se passe-t-il lorsqu'on utilise SRM avec les processor sets ?&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;A: A partir de Solaris 2.6, on peut utiliser les processeurs sets avec&lt;/pre&gt;&lt;pre&gt;lesquels on peut diviser le nombre de processeurs d'un serveurs en plusieurs &lt;/pre&gt;&lt;pre&gt;groupes de processeurs pour repartir la charge sur ces groupes.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;L'interraction entre SRM et les processeurs set est un peu compliquee et&lt;/pre&gt;&lt;pre&gt;plus simple a comprendre sur un exemple avec 2 processeurs set sur un machine&lt;/pre&gt;&lt;pre&gt;bipro:&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Processeurs set: A=cpu1 B=cpu2&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;user1 +------------+&lt;/pre&gt;&lt;pre&gt;10 shares | |&lt;/pre&gt;&lt;pre&gt; +------------+&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;user2 +------------+&lt;/pre&gt;&lt;pre&gt;80 shares | |&lt;/pre&gt;&lt;pre&gt; | |&lt;/pre&gt;&lt;pre&gt; | |&lt;/pre&gt;&lt;pre&gt; | |&lt;/pre&gt;&lt;pre&gt; +------------+ &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;user3 +------------+&lt;/pre&gt;&lt;pre&gt;10 shares | |&lt;/pre&gt;&lt;pre&gt; +------------+&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Les users 1 et 3 ont 10 shares SRM ET sont limites au processeur set A (cpu1),&lt;/pre&gt;&lt;pre&gt;user 2 possede 80 shares SRM EY est limites au processeur set B (cpu2 soit&lt;/pre&gt;&lt;pre&gt;50% de la cpu totale du systeme).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Dans ce cas, user 2 utilisera le processeur set A complet (50% de la cpu&lt;/pre&gt;&lt;pre&gt;totale du systeme), car user 2 n'utilise que 50% de la cpu systeme plutot&lt;/pre&gt;&lt;pre&gt;que les 80 SRM. Les users 1 et 3 peuvent utiliser les 50% de cpu systeme&lt;/pre&gt;&lt;pre&gt;restant pour le processeur set A: ils utiliseront donc chacun 25% de la&lt;/pre&gt;&lt;pre&gt;cpu du systeme (m&#195;&#170;me s'ils ont chacun des shares a 10).&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;En resume, attention a l'utilisation des processeurs set sous SRM, ne surtout&lt;/pre&gt;&lt;pre&gt;pas lancer des processus relatifs a un m&#195;&#170;me user ayant un lnode et donc des &lt;/pre&gt;&lt;pre&gt;limites dans 2 processeurs set differents, dans ce cas certains processus&lt;/pre&gt;&lt;pre&gt;peuvent ne jamais avoir de cpu.&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Pour plus d'infos sur les processeurs set, voir le man de psrset &lt;/pre&gt;&lt;pre&gt;ou le web http://trinity.eng/pset/&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;V/ Documentation &amp; Liens&lt;/pre&gt;&lt;pre&gt;========================&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;5.1/ Articles&lt;/pre&gt;&lt;pre&gt;-------------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;MODELLING THE BEHAVIOR OF SOLARIS RESOURCE MANAGER:&lt;/pre&gt;&lt;pre&gt;http://www.sun.com/software/solutions/blueprints/0899/solaris4.pdf&lt;/pre&gt;&lt;pre&gt;Par Engineering Entreprise - Aug 1999&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SOLARIS RESOURCE MANAGER RESOURCE ASSIGNMENT:&lt;/pre&gt;&lt;pre&gt;http://www.sun.com/software/solutions/blueprints/0899/solaris5.pdf&lt;/pre&gt;&lt;pre&gt;Par Richard Mac Dougall - Aug 1999&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SOLARIS RESOURCE MANAGER DECAY FACTORS AND PARAMETERS:&lt;/pre&gt;&lt;pre&gt;http://www.sun.com/software/solutions/blueprints/0499/solaris2.pdf&lt;/pre&gt;&lt;pre&gt;Par Richard Mac Dougall - Apr 1999&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Solaris Resource ManagerTM 1.1 White Paper&lt;/pre&gt;&lt;pre&gt;Consolidate Servers and Increase Resource Utilization:&lt;/pre&gt;&lt;pre&gt;http://web.eng/solaris-enterprise/srm/wp-srm11/&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;5.2/ Links&lt;/pre&gt;&lt;pre&gt;----------&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Senior Product Manager: &lt;/pre&gt;&lt;pre&gt; Rajiv Parikh - Rajiv.Parikh@Eng.Sun.Com&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Technical Marketing: &lt;/pre&gt;&lt;pre&gt; Steve Houle - Steve.Houle@East &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Solaris Product Group page: &lt;/pre&gt;&lt;pre&gt; http://web.eng/solaris-enterprise/srm/&lt;/pre&gt;&lt;pre&gt; http://web.eng/solaris-enterprise/srm/demo/ &lt;/pre&gt;&lt;pre&gt; (scripts de Demo qui utilisent SyMon)&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Le site de Andrei dorofeev du CTE (andrei.dorofeev@eng):&lt;/pre&gt;&lt;pre&gt; http://muskoka.eng/~andrei/SRM/&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Site interessant EAST OS UNIX Page:&lt;/pre&gt;&lt;pre&gt; http://osweb.east/unix/srm.html&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Enterprise Resource Management, la page de Brian Wong.&lt;/pre&gt;&lt;pre&gt; http://chessie.eng/srm/&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;La page SRM de Richard Mc Dougall: &lt;/pre&gt;&lt;pre&gt; http://devnull.eng.sun.com/rmc/share.html&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;SRM OneStop site: &lt;/pre&gt;&lt;pre&gt; http://onestop.eng/hw/srm.shtml&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;Page Editeur du soft (Softway): &lt;/pre&gt;&lt;pre&gt; http://www.softway.com.au&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;5.3/ Livre&lt;/pre&gt;&lt;pre&gt;-----------&lt;/pre&gt;&lt;pre&gt;Resource Management - Sun Blueprints&lt;/pre&gt;&lt;pre&gt; Richard Mc Dougall, Adrian Cockcroft, Evert Hoogendoorn, Enrique Vargas&lt;/pre&gt;&lt;pre&gt; Tom Bialaski&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
