<div dir="ltr"><div>Thanks for this example, very userful, but I&#39;m still struggeling a bit at a customer..</div><div><br></div><div><br></div><div>We&#39;re doing heat daily based rebalancing, with fileheatlosspercent=20 and fileheatperiodminutes=720:</div><div><br></div><div>RULE &quot;defineTiers&quot; GROUP POOL &#39;Tiers&#39;<br>        IS &#39;ssdpool&#39; LIMIT(70)<br>        then &#39;saspool&#39;</div><div><br></div><div>RULE &#39;Rebalance&#39; MIGRATE FROM POOL &#39;Tiers&#39; TO POOL &#39;Tiers&#39; WEIGHT(FILE_HEAT) WHERE FILE_SIZE&lt;10000000000</div><div><br></div><div>but are seeing too many files moved down to the saspool and too few are staying in the ssdpool. Right now we ran a test of this policy, and saw that it wanted to move 130k files / 300 GB down to the saspool, and a single small file up to the ssdpool -- even though the ssdpool is only 50% utilized. <br></div><div><br></div><div>Running your listing policy reveals lots of files with zero heat:</div><div><br></div><div><p class="MsoNormal">&lt;7&gt; 
/gpfs/gpfs0/file1    
 RULE &#39;fh2&#39; LIST &#39;fh&#39;  WEIGHT(0.000000) SHOW( _NULL_ 
_NULL_ _NULL_ +0.00000000000000E+000 _NULL_ 720 25 server.locale)<span></span></p>
<p class="MsoNormal">&lt;7&gt; 
/gpfs/gpfs0/file2    
 RULE &#39;fh2&#39; LIST &#39;fh&#39; WEIGHT(0.000000) SHOW( _NULL_ 
_NULL_ _NULL_ +0.00000000000000E+000 _NULL_ 720 25 server.locale)<span></span></p>
<p class="MsoNormal">&lt;7&gt; 
/gpfs/gpfs0/file3/HM_WVS_8P41017_1/HM_WVS_8P41017_1.S2206     
 RULE &#39;fh2&#39; LIST &#39;fh&#39; WEIGHT(0.000000) SHOW( _NULL_ 
_NULL_ _NULL_ +0.00000000000000E+000 _NULL_ 720 25 server.locale)<span></span></p>
<p class="MsoNormal"><span> </span></p><p class="MsoNormal"><span>and others with heat:</span></p><p class="MsoNormal"><span><br></span></p>
<p class="MsoNormal">&lt;5&gt; 
/gpfs/gpfs0/file4  RULE &#39;fh2&#39; 
LIST &#39;fh&#39; WEIGHT(0.004246) SHOW( 300401047 0 0 
+4.24600492924153E-003 11E7C19700000000
 720 25 server.locale)<span></span></p>
<p class="MsoNormal">&lt;5&gt; 
/gpfs/gpfs0/file5  RULE &#39;fh2&#39; 
LIST &#39;fh&#39; WEIGHT(0.001717) SHOW( 120971793 1 0 
+1.71725239616613E-003 0735E21100010000
 720 25 server.locale)</p></div><div><br></div><div>These are not new files -- so we&#39;re wondering if maybe the fileheat is reduced to zero/NULL after  a while (how many times can it shrink by 25% before it&#39;s zero??).</div><div><br></div><div>Would it make sense to increase fileheatperiodeminutes and/or decrease fileheatlosspercentage? What would be good values? (BTW: we have relatime enabled)<br></div><div><br></div><div>Any other ideas for why it won&#39;t fill up our ssdpool to close to LIMIT(70) ?</div><div><br></div><div><br></div><div>  -jf</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 13, 2019 at 3:33 PM Marc A Kaplan &lt;<a href="mailto:makaplan@us.ibm.com">makaplan@us.ibm.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p><font size="2">Yes, you are correct.  It should only be necessary to set fileHeatPeriodMinutes, since the loss percent does have a default value.</font><br><font size="2">But IIRC (I implemented part of this!) you must restart the daemon to get those fileheat parameter(s) &quot;loaded&quot;and initialized into the daemon processes.</font><br><br><font size="2">Not fully trusting my memory... I will now &quot;prove&quot; this works today as follows:</font><br><br><font size="2">To test, create and re-read a large file with dd...</font><br><br><font size="2">[root@/main/gpfs-git]$mmchconfig fileHeatPeriodMinutes=60</font><br><font size="2">mmchconfig: Command successfully completed</font><br><font size="2">  ...</font><br><font size="2">[root@/main/gpfs-git]$mmlsconfig | grep -i heat</font><br><font size="2">fileHeatPeriodMinutes 60</font><br><br><font size="2">[root@/main/gpfs-git]$mmshutdown</font><br><font size="2"> ...</font><br><font size="2">[root@/main/gpfs-git]$mmstartup</font><br><font size="2">...</font><br><font size="2">[root@/main/gpfs-git]$mmmount c23</font><br><font size="2">...</font><br><font size="2">[root@/main/gpfs-git]$ls -l /c23/10g</font><br><font size="2">-rw-r--r--. 1 root root 10737418240 May 16 15:09 /c23/10g</font><br><br><font size="2">[root@/main/gpfs-git]$mmlsattr -d -X /c23/10g</font><br><font size="2">file name:            /c23/10g</font><br><font size="2">security.selinux<br></font><br><font size="2">(NO fileheat attribute yet...)</font><br><br><font size="2">[root@/main/gpfs-git]$dd if=/c23/10g bs=1M of=/dev/null</font><br><font size="2">...</font><br><font size="2">After the command finishes, you may need to wait a while for the metadata to flush to the inode on disk ... or you can force that with an unmount or a mmfsctl...</font><br><br><font size="2">Then the fileheat attribute will appear (I just waited by answering another email... No need to do any explicit operations on the file system..)</font><br><br><font size="2">[root@/main/gpfs-git]$mmlsattr -d -X /c23/10g</font><br><font size="2">file name:            /c23/10g</font><br><font size="2">security.selinux</font><br><font size="2">gpfs.FileHeat</font><br><br><font size="2">To see its hex string value:</font><br><br><font size="2">[root@/main/gpfs-git]$mmlsattr -d -X -L /c23/10g</font><br><font size="2">file name:            /c23/10g</font><br><font size="2">    ...</font><br><font size="2">security.selinux:     0x756E636F6E66696E65645F753A6F626A6563745F723A756E6C6162656C65645F743A733000</font><br><font size="2">gpfs.FileHeat:        0x000000EE42A40400</font><br><br><font size="2">Which will be interpreted by mmapplypolicy...</font><br><br><font size="2">YES, the interpretation is relative to last access time and current time, and done by a policy/sql function &quot;computeFileHeat&quot;  <br>(You could find this using m4 directives in your policy file...)</font><br><br><font size="2">define([FILE_HEAT],[computeFileHeat(CURRENT_TIMESTAMP-ACCESS_TIME,xattr(&#39;gpfs.FileHeat&#39;),KB_ALLOCATED)])</font><br><br><font size="2">Well gone that far, might as well try mmapplypolicy too....</font><br><br><font size="2">[root@/main/gpfs-git]$cat /gh/policies/fileheat.policy</font><br><font size="2">define(DISPLAY_NULL,[CASE WHEN ($1) IS NULL THEN &#39;_NULL_&#39; ELSE varchar($1) END])</font><br><br><font size="2">rule fh1 external list &#39;fh&#39; exec &#39;&#39;</font><br><font size="2">rule fh2 list &#39;fh&#39; weight(FILE_HEAT) show(DISPLAY_NULL(xattr_integer(&#39;gpfs.FileHeat&#39;,1,4,&#39;B&#39;)) || &#39; &#39; ||</font><br><font size="2">DISPLAY_NULL(xattr_integer(&#39;gpfs.FileHeat&#39;,5,2,&#39;B&#39;)) || &#39; &#39; ||</font><br><font size="2">DISPLAY_NULL(xattr_integer(&#39;gpfs.FileHeat&#39;,7,2,&#39;B&#39;)) || &#39; &#39; ||</font><br><font size="2">DISPLAY_NULL(FILE_HEAT) || &#39; &#39; ||</font><br><font size="2">DISPLAY_NULL(hex(xattr(&#39;gpfs.FileHeat&#39;))) || &#39; &#39; ||</font><br><font size="2">getmmconfig(&#39;fileHeatPeriodMinutes&#39;) || &#39; &#39; ||</font><br><font size="2">getmmconfig(&#39;fileHeatLossPercent&#39;) || &#39; &#39; ||</font><br><font size="2">getmmconfig(&#39;clusterName&#39;) )</font><br><br><br><font size="2">[root@/main/gpfs-git]$mmapplypolicy /c23 --maxdepth 1 -P /gh/policies/fileheat.policy -I test -L 3</font><br><font size="2">   ...</font><br><font size="2">&lt;1&gt; /c23/10g     RULE &#39;fh2&#39; LIST &#39;fh&#39; WEIGHT(0.022363) SHOW( 238 17060 1024 +2.23632812500000E-002 000000EE42A40400 60 10 <a href="http://makaplan.sl.cloud9.ibm.com" target="_blank">makaplan.sl.cloud9.ibm.com</a>)</font><br><font size="2"> ...</font><br><font size="2">WEIGHT(0.022363) LIST &#39;fh&#39; /c23/10g SHOW(238 17060 1024 +2.23632812500000E-002 000000EE42A40400 60 10 <a href="http://makaplan.sl.cloud9.ibm.com" target="_blank">makaplan.sl.cloud9.ibm.com</a>)</font><br><br><br><br><br><img src="cid:16cf722f78f308fca931" alt="Inactive hide details for Jan-Frode Myklebust ---08/13/2019 06:22:46 AM---What about filesystem atime updates. We recently chan" width="16" height="16" border="0"><font size="2" color="#424282">Jan-Frode Myklebust ---08/13/2019 06:22:46 AM---What about filesystem atime updates. We recently changed the default to Ğrelatimeğ. Could that maybe</font><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">Jan-Frode Myklebust &lt;<a href="mailto:janfrode@tanso.net" target="_blank">janfrode@tanso.net</a>&gt;</font><br><font size="2" color="#5F5F5F">To:        </font><font size="2">gpfsug main discussion list &lt;<a href="mailto:gpfsug-discuss@spectrumscale.org" target="_blank">gpfsug-discuss@spectrumscale.org</a>&gt;</font><br><font size="2" color="#5F5F5F">Date:        </font><font size="2">08/13/2019 06:22 AM</font><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">[EXTERNAL] Re: [gpfsug-discuss] Fileheat</font><br><font size="2" color="#5F5F5F">Sent by:        </font><font size="2"><a href="mailto:gpfsug-discuss-bounces@spectrumscale.org" target="_blank">gpfsug-discuss-bounces@spectrumscale.org</a></font><br></p><hr style="color:rgb(128,145,165)" width="100%" size="2" noshade align="left"><br><br><br><br>What about filesystem atime updates. We recently changed the default to Ğrelatimeğ. Could that maybe influence heat tracking?<br><br><br><br>  -jf<br><br><br>tir. 13. aug. 2019 kl. 11:29 skrev Ulrich Sibiller &lt;<a href="mailto:u.sibiller@science-computing.de" target="_blank"><u><font color="#0000FF">u.sibiller@science-computing.de</font></u></a>&gt;:
<ul>On 12.08.19 15:38, Marc A Kaplan wrote:<br>&gt; My Admin guide says:<br>&gt; <br>&gt; The loss percentage and period are set via the configuration<br>&gt; variables *fileHeatLossPercent *and *fileHeatPeriodMinutes*. By default, the file access temperature <br>&gt; is not<br>&gt; tracked. To use access temperature in policy, the tracking must first be enabled. To do this, set <br>&gt; the two<br>&gt; configuration variables as follows:*<br><br>Yes, I am aware of that.<br><br>&gt; fileHeatLossPercent*<br>&gt; The percentage (between 0 and 100) of file access temperature dissipated over the*<br>&gt; fileHeatPeriodMinutes *time. The default value is 10.<br>&gt; Chapter 25. Information lifecycle management for IBM Spectrum Scale *361**<br>&gt; fileHeatPeriodMinutes*<br>&gt; The number of minutes defined for the recalculation of file access temperature. To turn on<br>&gt; tracking, *fileHeatPeriodMinutes *must be set to a nonzero value. The default value is 0<br>&gt; <br>&gt; <br>&gt; SO Try setting both!<br><br>Well, I have not because the documentation explicitly mentions a default. What&#39;s the point of a <br>default if I have to explicitly configure it?<br><br>&gt; ALSO to take effect you may have to mmshutdown and mmstartup, at least on the (client gpfs) nodes <br>&gt; that are accessing the files of interest.<br><br>I have now configured both parameters and restarted GPFS. Ran a tar over a directory - still no <br>change. I will wait for 720minutes and retry (tomorrow).<br><br>Thanks<br><br>Uli<br><br>-- <br>Science + Computing AG<br>Vorstandsvorsitzender/Chairman of the board of management:<br>Dr. Martin Matzke<br>Vorstand/Board of Management:<br>Matthias Schempp, Sabine Hohenstein<br>Vorsitzender des Aufsichtsrats/<br>Chairman of the Supervisory Board:<br>Philippe Miltin<br>Aufsichtsrat/Supervisory Board:<br>Martin Wibbe, Ursula Morgenstern<br>Sitz/Registered Office: Tuebingen<br>Registergericht/Registration Court: Stuttgart<br>Registernummer/Commercial Register No.: HRB 382196<br>_______________________________________________<br>gpfsug-discuss mailing list<br>gpfsug-discuss at <a href="http://spectrumscale.org" target="_blank"><u><font color="#0000FF">spectrumscale.org</font></u></a><u><font color="#0000FF"><br></font></u><a href="http://gpfsug.org/mailman/listinfo/gpfsug-discuss" target="_blank"><u><font color="#0000FF">http://gpfsug.org/mailman/listinfo/gpfsug-discuss</font></u></a><tt><font size="2">_______________________________________________<br>gpfsug-discuss mailing list<br>gpfsug-discuss at <a href="http://spectrumscale.org" target="_blank">spectrumscale.org</a><br></font></tt><tt><font size="2"><a href="http://gpfsug.org/mailman/listinfo/gpfsug-discuss" target="_blank">http://gpfsug.org/mailman/listinfo/gpfsug-discuss</a></font></tt><tt><font size="2"> <br></font></tt><br><br></ul><br>
<p></p></div>
_______________________________________________<br>
gpfsug-discuss mailing list<br>
gpfsug-discuss at <a href="http://spectrumscale.org" rel="noreferrer" target="_blank">spectrumscale.org</a><br>
<a href="http://gpfsug.org/mailman/listinfo/gpfsug-discuss" rel="noreferrer" target="_blank">http://gpfsug.org/mailman/listinfo/gpfsug-discuss</a><br>
</blockquote></div>