On Thu, Apr 26, 2018, 16:42 Greg Stein <gst...@gmail.com> wrote:

> On Thu, Apr 26, 2018, 15:06 Alex Harui <aha...@adobe.com.invalid> wrote:
>
>> Perhaps I wasn't clear.  I am not concerned about Jenkins projects being
>> removed, just the artifacts of those projects.  I am trying to make two
>> points:
>>
>> 1)  Old artifacts might have value as a known good build for a job that
>> may not get run for years.  So please don't run a clean up that deletes all
>> artifacts older than N days.
>>
>
> Nope. Download those artifacts if you want to keep them. The Jenkins
> Master is not an archival system. It exists for our projects to do builds.
> We have identified the overabundance of old artifacts as detrimental to the
> service, which affects everyone.
>

To be clearer here, Chris earlier said/asked:
we’d ask that this be exported and managed locally by the project rather
than remaining “live” on the master. Is there a reason other than
convenience for it to remain live?

Cheers,
-g


> 2)  Somebody else pointed this out as well, but there appear to be folders
>> listed for which there is no current Jenkins job.
>>
>
> Knew about that. I simply read your note as "please keep these jobs". Some
> disabled, some not working, etc. It seemed you were talking about jobs
> rather than artifacts within them.
>
> Cheers,
> -g
>
>
>> Thanks,
>> -Alex
>>
>> On 4/26/18, 11:07 AM, "Greg Stein" <gst...@gmail.com> wrote:
>>
>>     Note that jobs will remain.
>>
>>     This is only about deleting build artifacts.
>>
>>     On Thu, Apr 26, 2018 at 12:40 PM, Alex Harui <aha...@adobe.com.invalid
>> >
>>     wrote:
>>
>>     > HI Chris,
>>     >
>>     > Thanks for the list.
>>     >
>>     > I’m going through the Flex-related jobs and have some feedback:
>>     >
>>     > flex-blazeds (maven)  We’ve kept this build around even though it
>> hasn’t
>>     > run in a while in case we need to do another release of blazeds.  I
>> would
>>     > like to keep at least one known good build in case we have trouble
>>     > resurrecting it later if we need it, even though it may sit idle
>> for years.
>>     >
>>     > flex-flexunit_1
>>     > flex-sdk_1
>>     > flex-sdk_pixelbender_1
>>     > flex-sdk_release_1
>>     > flex-tlf_1
>>     > flex_sdk_version  I cannot find a project with these names in
>> Jenkins.  So
>>     > feel free to toss it.
>>     >
>>     >
>>     > flex-flexunit (maven)  This project was never completed to build
>>     > successfully, but it would be nice to keep it around in case we
>> need it.
>>     >
>>     > FlexJS Compiler (maven)
>>     > FlexJS Framework (maven)
>>     > FlexJS Pipeline
>>     > FlexJS Typedefs (maven)  Looks like we never set the build limit,
>> so I
>>     > just did that.  The project is disabled, we are keeping it around as
>>     > archival for Royale, so not sure it will clean itself up.
>>     >
>>     > flex-productdashboard I deleted this project.
>>     >
>>     > flex-tool-api (maven)
>>     > flex-sdk-converter (maven)  I’m not seeing old artifacts in these
>>     > projects, but they may also sit idle for years until some bug needs
>> fixing.
>>     >
>>     > Flex-Site (Maven) This project never took off, but again it would
>> be nice
>>     > to keep it around in case it gets revived
>>     >
>>     > In sum, a project like Flex may have several kinds of “products”
>> with
>>     > varying activity levels and thus may have jobs that are idle for
>> years and
>>     > it can be helpful to keep at least the last build around as a
>> reference in
>>     > case the next time we run the build there is a failure.  Please
>> notify us
>>     > if we miss limiting the number of old builds.  I think I fixed the
>> ones
>>     > that didn’t have limits.  But there does seem to be folders left
>> around for
>>     > builds I think we deleted.
>>     >
>>     > Thanks,
>>     > -Alex
>>     >
>>     >
>>     > From: Chris Lambertus <c...@apache.org>
>>     > Reply-To: <builds@apache.org>
>>     > Date: Wednesday, April 25, 2018 at 12:04 AM
>>     > To: <builds@apache.org>
>>     > Subject: Re: purging of old job artifacts
>>     >
>>     >
>>     >
>>     >
>>     > On Apr 24, 2018, at 8:04 PM, Allen Wittenauer <
>> a...@effectivemachines.com<
>>     > mailto:a...@effectivemachines.com>> wrote:
>>     >
>>     >
>>     >
>>     > On Apr 24, 2018, at 5:01 PM, Greg Stein <gst...@gmail.com<mailto:
>> gstei
>>     > n...@gmail.com>> wrote:
>>     >
>>     > Let's go back to the start: stuff older than six months will be
>> deleted.
>>     > What could possibly need to be retained?
>>     >
>>     >                 - Not every job runs every day.  Some are extremely
>>     > situational.
>>     >
>>     > The artifacts do not need to be kept in perpetuity. When every
>> project
>>     > does this, there are significant costs in both disk space and
>> performance.
>>     > Our policy has been 30 days or 10 jobs retention.
>>     >
>>     >
>>     >
>>     >
>>     >                 - Some users might have specifically marked certain
>> data
>>     > to be retained for very specific reasons.
>>     >
>>     >                 I know in my case I marked some logs to not be
>> deleted
>>     > because I was using them to debug the systemic Jenkins build node
>> crashes.
>>     > I want to keep the data to see if the usage numbers, etc, go down
>> over time.
>>     >
>>     >
>>     > Part of the systemic problems are due to copious amounts of
>> historical
>>     > data which are loaded into jenkins on startup, inflating the memory
>> usage
>>     > and startup times. Again, when every job does this, it adds up, and
>> many of
>>     > the problems we’re facing appear to be rooted in the very large
>> number of
>>     > artifacts we have.
>>     >
>>     >
>>     >
>>     >                 So yes, there may be some value to some of that
>> data that
>>     > will not be obvious to an outside observer.
>>     >
>>     >
>>     > Assume all jobs will be touched.
>>     >
>>     >                 … which is why giving a directory listing of just
>> the base
>>     > directory would be useful to see who needs to look. If INFRA is
>> unwilling
>>     > to provide that data, then keep any directories that reference:
>>     >
>>     >
>>     > Please dispense with the passive aggressive “unwilling to provide”
>>     > nonsense. This is inflammatory and anti-Infra for no valid reason.
>> This
>>     > process is meant to be a pragmatic approach to cleaning up and
>> improving a
>>     > service used by a large number of projects. The fact that I didn’t
>> have
>>     > time to post the job list in the 4 hours since my last reply does
>> not need
>>     > to be construed as reticence on Infra’s part to provide it.
>>     >
>>     > The top-level list of jobs is available here:
>>     >
>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpaste.apache.org%2Fr37e&data=02%7C01%7Caharui%40adobe.com%7C1099543a29ab494553cc08d5aba08f41%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636603628504178337&sdata=dZOVSreSfQIqbL%2FScGSEW5m93SmDcKeb2%2FZMbPaIUzA%3D&reserved=0
>>     >
>>     > I am happy to provide further information, however, due to the disk
>> IO
>>     > issues on jenkins-master and the size of the jobs/ dir, multiple
>> scans and
>>     > data analytics are difficult to provide due to the timescale.
>>     >
>>     >
>>     > As I previously mentioned, the list of actual artifacts currently
>> slated
>>     > for deletion is 590MB and took several hours to generate. I also
>> misspoke
>>     > earlier, that list is for artifacts over one year old. The space
>> which
>>     > would be freed up is over 480GB. The list of artifacts over 180
>> days old is
>>     > going to be much longer, but I can look into making it available
>> somewhere.
>>     > I question the utility though, as the 1 year data is over 3 million
>> lines.
>>     >
>>     >
>>     >
>>     >
>>     >                 - precommit
>>     >                 - hadoop
>>     >                 - yarn
>>     >                 - hdfs
>>     >                 - mapreduce
>>     >                 - hbase
>>     >                 - yetus
>>     >
>>     >
>>     > We will not be cherry-picking jobs to exclude from the purge unless
>> there
>>     > is a compelling operational reason to do so. Jenkins is a shared
>> resource,
>>     > and all projects are affected equally.
>>     >
>>     >
>>     > Let me do some further research and compare the size and file
>> counts for
>>     > artifacts vs. build metadata (logs, etc.)
>>     >
>>     > The main things we want to purge are:
>>     >
>>     > - all artifacts and metadata where the job/project longer exists
>>     > - binary artifacts with no value older than 180 days
>>     >
>>     > and, to a lesser extent, jobs which fall outside our general 30
>> day/10
>>     > jobs retention policy.
>>     >
>>     >
>>     > As an example of ancient binary artifacts, there are 22MB of
>> javadocs from
>>     > 2013 in /x1/jenkins/jenkins-home/jobs/ManifoldCF-mvn
>>     >
>>     > Using the yetus jobs as a reference, yetus-java builds 480 and 481
>> are
>>     > nearly a year old, but only contain a few kilobytes of data. While
>> removing
>>     > them saves no space, they also provide no value, but are still
>>     > loaded/parsed by jenkins. Since they don’t contain valid jenkins
>> objects,
>>     > they don’t even show up in the build history, but are still part of
>> the
>>     > constant scanning of the jobs/ directory that jenkins does, and
>> contribute
>>     > to high load and disk IO. Those two are the only +180 day artifacts
>> for
>>     > yetus with the exception of a zero-byte legacyIds file for -qbt.
>>     >
>>     > root@jenkins-master:/x1/jenkins/jenkins-home/jobs# find yetus-*
>> -mtime
>>     > +180 -ls
>>     >  69210803      4 drwxr-xr-x   2 jenkins  jenkins      4096 Jul 12
>> 2017
>>     > yetus-java/builds/481
>>     >  69210815      4 -rw-r--r--   1 jenkins  jenkins       457 Jul  8
>> 2017
>>     > yetus-java/builds/481/polling.log
>>     >  65813999      0 lrwxrwxrwx   1 jenkins  jenkins         2 May 23
>> 2016
>>     > yetus-java/builds/lastUnstableBuild -> -1
>>     >  65814012      0 -rw-r--r--   1 jenkins  jenkins         0 May 23
>> 2016
>>     > yetus-java/builds/legacyIds
>>     >  69210796      4 drwxr-xr-x   2 jenkins  jenkins      4096 Jul 12
>> 2017
>>     > yetus-java/builds/480
>>     >  69210810      4 -rw-r--r--   1 jenkins  jenkins       456 Jul  7
>> 2017
>>     > yetus-java/builds/480/polling.log
>>     >  23725477      0 lrwxrwxrwx   1 jenkins  jenkins         2 Jun 15
>> 2017
>>     > yetus-qbt/builds/lastStableBuild -> -1
>>     >  23741645      0 lrwxrwxrwx   1 jenkins  jenkins         2 Apr 14
>> 2016
>>     > yetus-qbt/builds/lastUnstableBuild -> -1
>>     >  23725478      0 lrwxrwxrwx   1 jenkins  jenkins         2 Jun 15
>> 2017
>>     > yetus-qbt/builds/lastSuccessfulBuild -> -1
>>     >  23741647      0 -rw-r--r--   1 jenkins  jenkins         0 Apr 14
>> 2016
>>     > yetus-qbt/builds/legacyIds
>>     >
>>     > For mapreduce, there is an empty Mapreduce-Patch-vesta.apache.org<
>>     >
>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2FMapreduce-Patch-vesta.apache.org&data=02%7C01%7Caharui%40adobe.com%7C1099543a29ab494553cc08d5aba08f41%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636603628504178337&sdata=KxgEx5GbH1omcfeO7sw0to9qBk7eJ%2BY3zhuM4k%2FlyUA%3D&reserved=0>
>> from 2010, and a bunch of jobs
>>     > from June 2017 for PreCommit-MAPREDUCE-Build (6999-7006.) Again,
>> while they
>>     > take up very little space, they are still loaded into jenkins and
>> scanned
>>     > by the threads which watch the jobs/ dir for changes. Multiply this
>> times
>>     > 2381 top level job configs, and you can see why we’re hoping this
>> type of
>>     > purge will help improve jenkins performance and the frequent
>> crashing.
>>     >
>>     >
>>     > Since we are looking to move to expensive NVMe disks (nearly 4TB
>> worth) we
>>     > also need to perform due diligence to insure that we are not
>> migrating and
>>     > maintaining ancient data.
>>     >
>>     > -Chris
>>     >
>>     >
>>     >
>>     >
>>
>>
>>

Reply via email to