JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for GRIDPP-STORAGE Archives


GRIDPP-STORAGE Archives

GRIDPP-STORAGE Archives


GRIDPP-STORAGE@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

GRIDPP-STORAGE Home

GRIDPP-STORAGE Home

GRIDPP-STORAGE  August 2009

GRIDPP-STORAGE August 2009

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Re: quick agenda for today

From:

John Bland <[log in to unmask]>

Reply-To:

John Bland <[log in to unmask]>

Date:

Wed, 19 Aug 2009 14:22:04 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (165 lines)

Jensen, J (Jens) wrote:
> Now with minutes, too.
> http://indico.cern.ch/conferenceDisplay.py?confId=66531
> 
> Thanks once again for a useful meeting.  And special thanks to Brian for
> also keeping an eye on the slot, I was a bit later than usual having
> been on leave and only coming back late-ish last night.

Sorry I wasn't at the meeting, missed the email. I noticed in the 
minutes the subject of moving from rfcp to RFIO with 4kB buffers. We've 
been looking into the problems of rfcp at Liverpool and have come to 
some conclusions about the lack of performance and ways of improving 
efficiency. Unfortunately the improvements we've applied may only be 
applicable for a small number of sites. We've kept quiet about them 
while we got some real numbers from HC tests and until the site 
throughput reports were made public.

First an overview of the problem, as some of the inherent problems may 
not be known to everyone. [Wall of text begins]

Atlas analysis jobs need to read in events from data files. These data 
files now tend to come in small numbers of large files (multi-gigabyte).

The access patterns appear to be pseudo-random, in that the analysis 
processes seek back and forth across the datafile in big jumps in a (to 
the system) unpredictable manner. It is this pseudo-random nature of 
read access that is the root cause of all of the problems we've been 
trying to solve with buffers etc over the past year. This is made worse 
by the large size of the files.

Until this is changed in some significant way I don't see atlas analysis 
efficiencies ever being good without significant (over)investment in 
extra hardware. Local atlas people think this is down to the arrangement 
of the different types of atlas data within the ROOT file, rather than 
the way ROOT itself operates, but I'm certainly no expert on ROOT.

So far, there have been two main threads of access; direct POSIX IO to 
the storage servers and file staging data to the WN local disk. Each has 
inherent drawbacks. POSIX IO hits the extra latency of the access 
protocol, TCP/IP, ethernet and can saturate network bandwidth, and 
ultimately still ends up hitting a physical 'disk'. Local WN disk is 
relatively slow, possibly doing other things as well and is being shared 
between up to 8 processes on modern machines.

In either case whenever the event data is buffered/cached in system RAM 
efficiency is very high. As soon as access hits bare metal (disk or 
network) efficiency drops significantly as the access times are many 
orders of magnitude slower (eg RAM ns, disk/net ms).

With the current large files it is no longer possible to fully buffer 
the entire file in RAM with RFIO, meaning we're hitting the network for 
more reads rather than RAM. Large buffers pull in more data (in the hope 
of buffering the next events) than necessary and so lead to bandwidth 
saturation. Small (4kB) buffers only read what they need but they do hit 
the network latency problem for each and every read.

Those reads also translate to multiple random reads for the storage 
pools (as they cannot possibly cache all the files they are serving). 
Current RAID arrays only have a relatively small number of IO operations 
per second and so they will likely only scale so far before reaching the 
hardware limit of the array. The result is that job efficiencies are 
relatively stable but still quite low, and the overall site throughput 
may hit a brick wall when job numbers increase and the pool nodes 
saturate (depends on number of jobs and number of pools).

There may be a particular small buffer size that gives the best 
efficiency but I don't see any sort of magic bullet that massively 
increases the current maximum.

The other option of file staging also fares badly because of the access 
patterns. For one job the files are cached in RAM and efficiency is very 
high. Unfortunately there isn't generally enough free RAM on current 
8core systems to cache all of the files for 8 jobs (which translates to 
a minimum of 16 files, although currently jobs seem to be holding many 
more than this for some reason that hasn't been explained yet).

Sites have been seeing efficiencies dropping off for more than 4 jobs 
per node. Over this the system merely gets more and more bogged down 
with IO and efficiencies get worse.

Following system activity during analysis shows that while there is a 
lot of read access to the WN disk the major disk activity (at least 
twice as much and often more) is *write* access. See this plot for a WN disk

http://hep.ph.liv.ac.uk/~jbland/device_i_o_transfers__dev9_0.png

The 10s of GBs of files being read in have to be written to disk. A 
certain proportion of the files are still cached in RAM so those reads 
hit RAM not disk. The disk writes consume system resources and block reads.

There are also writes continually being made to disk for system logs, 
job stdout/stderr etc that also compete with job read access.

With this in mind we concentrated on increasing the WN disk write 
performance. There are three ways we did this on our systems

1) Convert our existing software RAID1 arrays to RAID0
2) Added a separate small system disk (for logs, job output etc)
3) Short stroked the 1TB drives using 64GB partitions

All of the above have shown improvements with local and HC tests as they 
all improve disk throughput and latency.

Another improvement can come from altering the behaviour of the page 
cache. By default the file data will be committed to physical disk if 
more than a certain percentage of the RAM is being used for cache, or if 
the file data is more than 30s old. This means any cached file will 
eventually be fully written to disk. While this may be useful for 
permanent files the atlas staged files are only transitory and don't 
need to be stored on disk, any write of staged files to disk is a waste 
of resources.

The page cache flushing can be altered through sysctl. We have changed 
this to a 30minute timeout (rather than 30s) and only write files when 
all RAM is used. This means only the parts of files that have to be 
written to disk (to make way for other processes or new files) are 
written, not all files all of the time. With local tests this made an 
improvement to throughput, but the current HC tests are keeping multiple 
files stored on the WN so the effect in this case is minimal (as all 
files have to be written eventually as there just isn't enough room).

The overall effect of these four methods in combination can be seen in 
this plot

http://hep.ph.liv.ac.uk/~jbland/tuned-atlas-throughput.png

Job efficiencies are higher than our standard setup and consequently 
throughput is higher. Throughput remains good up to 7 jobs/node now, and 
even 8 jobs/node is better than the best untuned throughput. I think 
that this would be even better if the HC file staging only kept two 
files/job on the WN if possible.

File staging should scale higher than RFIO, as the efficiency drop off 
is per node, the only limit after that is how many nodes can run before 
saturating the LAN or pool node bandwidth. It's unlikely to scale with 
cores/node, however.

 From comments made by other sites it might be that Liverpool are unique 
in using multiple disks already on the WNs, so the above has cost us 
very little (apart from the little system disks) and garnered big 
improvements. Other sites may not be able to make use of this tuning if 
they only have single disks or limited disk slots, although the page 
cache changes can be applied to any system on the fly.

As there is a big mix of hardware out there it is hard to provide a 
single solution that is best, sites with 8core systems may need a 
different access method to those with 2 or 4, and lustre adds an extra 
option that seems to do quite well. In a few years when SSDs are big and 
affordable enough the problem may go away (there are a lot of events to 
be processed between then and now, though).

I would look forward to an RFIO test to compare our current tuned file 
stager setup with small buffer RFIO (the way we're doing our tests make 
it hard to really compare with other site results).

John

-- 
Dr John Bland, Systems Administrator
Room 220, Oliver Lodge
Particle Physics Group, University of Liverpool
Mail: [log in to unmask]
Tel : 0151 794 2911
"I canna change the laws of physics, Captain!"

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

April 2024
March 2024
February 2024
January 2024
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager