<div dir="ltr">I had been wanting to do something like this for a while, to try out the multiprocessing library, so here&#39;s an example for fun:<div><br></div><div>  <a href="https://gist.github.com/ecashin/96dc9c3183e6e98db2fd#file-ptars-py">https://gist.github.com/ecashin/96dc9c3183e6e98db2fd#file-ptars-py</a></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 30, 2014 at 8:57 PM, Ed Cashin <span dir="ltr">&lt;<a href="mailto:ecashin@noserose.net" target="_blank">ecashin@noserose.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The fact that the VM&#39;s storage is spread over 6 disks makes it sound like your best bet is to avoid seek times.<div>
<br></div><div>So a tmpfs could conceivably help a lot.  By catting the whole files from storage into the tmpfs you avoid making the disk heads go back and forth more than necessary, and random access can occur in RAM.</div>

<div><br></div><div>Then the trick is to get the data out of the tar file in RAM as quickly as possible.  You could use, e.g., the tarfile library from Python.</div><div><br></div><div>If I knew more about how you need to process that data I could speculate about what that would look like.  I am guessing that you could throw the tar files into the tmpfs while you have room with one process and use Python&#39;s multiprocessing library,</div>

<div><br></div><div>  <a href="https://docs.python.org/2/library/multiprocessing.html" target="_blank">https://docs.python.org/2/library/multiprocessing.html</a></div><div><br></div><div>... to manage multiple workers that would concurrently process the data from the tmpfs and then delete the tar files from the tmpfs.</div>

<div><br></div><div>And if Python&#39;s not your bag, there are other ways to use tar in a program.  Often I have been able to get big speedups by simply doing lots of work in one (or 10---a fixed number, anyway) ruby or Python processes instead of launching a new process for each file.</div>

<div><br></div></div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Wed, Jul 30, 2014 at 10:08 AM, Robert L. Harris <span dir="ltr">&lt;<a href="mailto:robert.l.harris@gmail.com" target="_blank">robert.l.harris@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Maybe if I used smaller chunk loads but not sure what that would get me.<br>
<div><div><br>
<br>
On Tue, Jul 29, 2014 at 10:33 PM, Jeff Hubbs &lt;<a href="mailto:jhubbslist@att.net" target="_blank">jhubbslist@att.net</a>&gt; wrote:<br>
<br>
&gt; Do you have enough RAM to read from disk and write to a ramdisk or vice<br>
&gt; versa, whichever helps?<br>
&gt;<br>
&gt; On 7/29/14, 6:44 PM, Jim Kinney wrote:<br>
&gt;<br>
&gt;&gt; Ugh. Sounds like you&#39;ll need to do it stages. Coarse grain search written<br>
&gt;&gt; to new files and a fine grained search on those new files.<br>
&gt;&gt; On Jul 29, 2014 6:08 PM, &quot;Robert L. Harris&quot; &lt;<a href="mailto:robert.l.harris@gmail.com" target="_blank">robert.l.harris@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;  Unfortunately I can&#39;t touch the VM&#39;s configuration or the hardware<br>
&gt;&gt;&gt; underneath it.  Supposedly I&#39;m spread across a minimum of 6 &quot;fast&quot; disks<br>
&gt;&gt;&gt; already.  I can&#39;t really go less than 10 files though as I am concerned<br>
&gt;&gt;&gt; with information being spread across multiple files.  I was hoping<br>
&gt;&gt;&gt; someone<br>
&gt;&gt;&gt; knew a tool/util which would rip through the data faster I had not found<br>
&gt;&gt;&gt; yet.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Robert<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Jul 29, 2014 at 4:00 PM, Jim Kinney &lt;<a href="mailto:jim.kinney@gmail.com" target="_blank">jim.kinney@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  unless you can spread that read/write load out over many, many spindles,<br>
&gt;&gt;&gt;&gt; you&#39;re stuck. Now add in the VMmust access through the virtual drive<br>
&gt;&gt;&gt;&gt; process and you&#39;ve got another performance hit.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; You _could_ add extra drives to the VM that are hosted on a decent array<br>
&gt;&gt;&gt;&gt; (fiber channel or LA network iSCSI), copy the files to the new home in a<br>
&gt;&gt;&gt;&gt; batch and hit the 4G RAM limit.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; If possible, can you add more RAM to that VM?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Tue, Jul 29, 2014 at 5:10 PM, Robert L. Harris &lt;<br>
&gt;&gt;&gt;&gt; <a href="mailto:robert.l.harris@gmail.com" target="_blank">robert.l.harris@gmail.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; I&#39;m working on a tool to parse through a lot of data for processing.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   Right<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; now it&#39;s taking longer than I wish it would so I&#39;m trying to find ways<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; to<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; improve the performance.  Right now it appears the biggest bottleneck<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; is<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; IO.  I&#39;m looking at about 2000 directories which contain between 1 and<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 200<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; files in tar.gz format on a VM with 4 Gigs of RAM.  I need to load the<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; data<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; into an array to do some pre-processing cleanup so I am currently<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; chopping<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; the files in each of the directories into an array of groups of 10<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; files<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; at<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; a time ( seems to be the sweet spot to prevent swap ) and then a<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; straight<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; forward loop of which each iteration executes:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    tar xzOf $Loop |<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; and then pushes it into my array for processing.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I have tried:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   gzcat $Loop | tar xO |<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; which is actually slower.  Yes, I&#39;m at the point of trying to squeeze<br>
&gt;&gt;&gt;&gt;&gt; seconds of time out of a group.  Any thoughts of a method which might<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; be<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; quicker?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Robert<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt; :wq!<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;  ------------------------------------------------------------<br>
&gt;&gt;&gt; ---------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Robert L. Harris<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; DISCLAIMER:<br>
&gt;&gt;&gt;&gt;&gt;        These are MY OPINIONS             With Dreams To Be A King,<br>
&gt;&gt;&gt;&gt;&gt;         ALONE.  I speak for                      First One Should Be A<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Man<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;         no-one else.                                     - Manowar<br>
&gt;&gt;&gt;&gt;&gt; -------------- next part --------------<br>
&gt;&gt;&gt;&gt;&gt; An HTML attachment was scrubbed...<br>
&gt;&gt;&gt;&gt;&gt; URL: &lt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;  <a href="http://mail.ale.org/pipermail/ale/attachments/20140729/" target="_blank">http://mail.ale.org/pipermail/ale/attachments/20140729/</a><br>
&gt;&gt;&gt; 38cb3da3/attachment.html<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; Ale mailing list<br>
&gt;&gt;&gt;&gt;&gt; <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt;&gt;&gt;&gt;&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt;&gt;&gt;&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; James P. Kinney III<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Every time you stop a school, you will have to build a jail. What you<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; gain<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; at one end you lose at the other. It&#39;s like feeding a dog on his own<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; tail.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It won&#39;t fatten the dog.<br>
&gt;&gt;&gt;&gt; - Speech 11/23/1900 Mark Twain<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; *<a href="http://heretothereideas.blogspot.com/" target="_blank">http://heretothereideas.blogspot.com/</a><br>
&gt;&gt;&gt;&gt; &lt;<a href="http://heretothereideas.blogspot.com/" target="_blank">http://heretothereideas.blogspot.com/</a>&gt;*<br>
&gt;&gt;&gt;&gt; -------------- next part --------------<br>
&gt;&gt;&gt;&gt; An HTML attachment was scrubbed...<br>
&gt;&gt;&gt;&gt; URL: &lt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;  <a href="http://mail.ale.org/pipermail/ale/attachments/20140729/" target="_blank">http://mail.ale.org/pipermail/ale/attachments/20140729/</a><br>
&gt;&gt;&gt; 385b6337/attachment.html<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Ale mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt;&gt;&gt;&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt;&gt;&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; :wq!<br>
&gt;&gt;&gt; ------------------------------------------------------------<br>
&gt;&gt;&gt; ---------------<br>
&gt;&gt;&gt; Robert L. Harris<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; DISCLAIMER:<br>
&gt;&gt;&gt;        These are MY OPINIONS             With Dreams To Be A King,<br>
&gt;&gt;&gt;         ALONE.  I speak for                      First One Should Be A<br>
&gt;&gt;&gt; Man<br>
&gt;&gt;&gt;         no-one else.                                     - Manowar<br>
&gt;&gt;&gt; -------------- next part --------------<br>
&gt;&gt;&gt; An HTML attachment was scrubbed...<br>
&gt;&gt;&gt; URL: &lt;<br>
&gt;&gt;&gt; <a href="http://mail.ale.org/pipermail/ale/attachments/20140729/" target="_blank">http://mail.ale.org/pipermail/ale/attachments/20140729/</a><br>
</div></div><div>&gt;&gt;&gt; e382a9b2/attachment.html<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Ale mailing list<br>
&gt;&gt;&gt; <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
&gt;&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt;&gt;&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt;&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  -------------- next part --------------<br>
&gt;&gt; An HTML attachment was scrubbed...<br>
&gt;&gt; URL: &lt;<a href="http://mail.ale.org/pipermail/ale/attachments/" target="_blank">http://mail.ale.org/pipermail/ale/attachments/</a><br>
&gt;&gt; 20140729/4b9bfb79/attachment.html&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Ale mailing list<br>
&gt;&gt; <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt;&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; _______________________________________________<br>
&gt; Ale mailing list<br>
&gt; <a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
&gt; <a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt; <a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
&gt;<br>
<br>
<br>
<br>
</div><div>--<br>
:wq!<br>
---------------------------------------------------------------------------<br>
Robert L. Harris<br>
<br>
DISCLAIMER:<br>
      These are MY OPINIONS             With Dreams To Be A King,<br>
       ALONE.  I speak for                      First One Should Be A Man<br>
       no-one else.                                     - Manowar<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
</div>URL: &lt;<a href="http://mail.ale.org/pipermail/ale/attachments/20140730/fcdf40c9/attachment.html" target="_blank">http://mail.ale.org/pipermail/ale/attachments/20140730/fcdf40c9/attachment.html</a>&gt;<br>
<div><div>_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org" target="_blank">Ale@ale.org</a><br>
<a href="http://mail.ale.org/mailman/listinfo/ale" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div dir="ltr">  Ed Cashin &lt;<a href="mailto:ecashin@noserose.net" target="_blank">ecashin@noserose.net</a>&gt;</div>

</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">  Ed Cashin &lt;<a href="mailto:ecashin@noserose.net" target="_blank">ecashin@noserose.net</a>&gt;</div>
</div>