<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">hello Lustre hackers,<div><br></div><div>ClusterStor would like to start doing real contributions to Lustre stability and popularity. First off, we would like to improve loadgen utility, written by Nathan Rutman. We think loadgen is a really good tool for testing and what is not less important, it is implemented right way from architecture point of view.</div>
<div><br></div><div>However, these days it has number of issues:</div><div>1. Wrong stack size for threads, that results in segfault (find the patch in attachment);</div><div>2. Little locking issues (push_kid() function);</div>
<div>3. Absence of striping functionality, it only may create load on one OST/ECHO server.</div><div><br></div><div>We plan to add striping functionality to loadgen. General idea is to use LOV module, which already has all the needed code. Loadgen itself and echo_client also have related code, so it seems this functionality was planned anyway, though it's not working currently. Currently an attempt to attach to a LOV results in assertion failures.</div>
<div><br></div><div>Let's discuss these matters. The way we're going to implement this may be roughly expressed as follows:</div><div><br></div><div>1. Attach to LOV device in loadgen, using "device" command. To do so we need to construct new LOV instance, used by loadgen only, as we cannot use LOV instance used by LLITE. This requires changes to handling function for command "device". It should accept more than one OST target;</div>
<div><br></div><div>2. Stripe size and stripe count of new LOV instance should also be specified while constructing it using "device" command;</div><div><br></div><div>3. Setup of virtual clients should take into account that LOV may be used as a target. In this case attaching dedicated OSCs to created echo_client's is not needed.</div>
<div><br></div><div>4. In order to be able to run thousands of threads, we need the following:</div><div> - reasonable stack size for threads;</div><div> - change 8192 OBD number limit to something more reasonable.</div><div>
<br></div><div>5. Load itself is created in the way being currently used - via obd_brw().</div><div><br></div><div>Thanks.</div><div><br></div></span><br>-- <br>umka<br>