Thank you for reporting this -- turns out to be a very simple issue. I've pushed out a tested fix -- if you upgrade to the workflow-api plugin beta-2 version, this is now resolved.
I'm curious to hear how it's performing for people that have tried it out. On Wednesday, December 27, 2017 at 4:07:44 AM UTC-5, Ted Xiao wrote: > > I changed it to PERFORMANCE_OPTIMIZED, but it changed back to none after > restart. xml is > > more org.jenkinsci.plugins.workflow.flow.GlobalDefaultFlowDurabilityLevel. > xml > <?xml version='1.0' encoding='UTF-8'?> > <org.jenkinsci.plugins.workflow.flow.GlobalDefaultFlowDurabilityLevel_- > DescriptorImpl plugin="[email protected]"> > <durabilityHint>PERFORMANCE_OPTIMIZED</durabilityHint> > </org.jenkinsci.plugins.workflow.flow.GlobalDefaultFlowDurabilityLevel_- > DescriptorImpl> > > > > > On Friday, December 22, 2017 at 9:51:14 AM UTC+8, Samuel Van Oort wrote: >> >> Subject: Pipeline Storage Performance Work Available For Beta - Want to >> kick the tires? >> >> Hey all, I've just released a set of plugin betas to the Experimental >> Update Center. They have enhancements to Pipeline which CAN dramatically >> reduce I/O use and improve performance. Please given them a try and report >> back how they work out for you. >> >> Please note: to maintain existing behavior, these changes are OPT-IN. You >> MUST enable them to see a difference (see below). >> >> The settings themselves have their own explanations (tooltips and help >> info), but the below gives more info. >> >> *Will it help me?* >> * Yes, if you are running complex Pipelines or Pipelines with many steps. >> * Yes, if your Jenkins instance uses NFS, magnetic storage, runs many >> Pipelines at once, or shows high iowait. >> * No, if your Pipelines spend almost all their time waiting for >> shell/batch scripts to run. This isn't a magic "go fast" button for >> everything (I wish!). >> * No, if you are not using Pipelines, or your system is loaded down by >> other factors. >> >> *How do I get it?* >> * You need to be on Jenkins LTS 2.73+ or higher (or a weekly 2.62+) >> * Enable the experimental update center - instructions here: >> https://jenkins.io/blog/2013/09/23/experimental-plugins-update-center/ >> * Check for plugins updates >> * You should see and install updates for the following plugins, with >> versions including the word "durability" >> - Pipeline: API (workflow-api) >> - Pipeline: Groovy (workflow-cps) >> - Pipeline: Job (workflow-job) >> - Pipeline: Supporting APIs (workflow-support) >> - Pipeline: Multibranch (workflow-multibranch) >> * Restart the master to use the updated plugins - note: you need all of >> them to take advantage. >> >> *What does it do?* >> >> This adds a performance/durability setting for Pipelines. If you use the >> performance-optimized mode, disk writes are reduced significantly. This >> lets you improve Pipeline performance greatly (reduce I/O) at some cost to >> the running Pipelines' ability to survive if Jenkins falls over completely >> (durability). Stability of Jenkins ITSELF is not changed, nor are there >> changes to completed Pipelines. >> >> We also add the ability to mark Pipelines to NOT resume upon restart (a >> requested feature) - available under the properties at the top. >> >> *How do I USE it?* >> >> Durability settings need to be enabled (and will display in the logs when >> a job begins), either globally or per Pipeline/branch (MultiBranch). >> Settings take effect the next time the Pipeline runs. >> >> There are 3 ways to configure the durability setting: >> >> **Globally**, you can choose a durability setting under "Manage Jenkins > >> Configure System", labelled "Pipeline Speed/Durability Settings". These >> settings will take effect for Pipelines upon the next run, unless you >> override them with one of the below settings >> >> **Per pipeline job:** at the top of the job configuration, labelled >> "Custom Pipeline Speed/Durability Level" - this overrides the global >> setting. Or, use a "properties" step - the setting will apply to the NEXT >> run after the step is executed (same result). >> >> **Per branch for a multibranch project:** configure a custom Branch >> Property Strategy (under the SCM) and add a property for Custom Pipeline >> Speed/Durability Level. This overrides the global setting. >> >> >> *What are the settings?* >> >> * Performance optimized mode ("PERFORMANCE_OPTIMIZED") - Greatly reduces >> disk I/O but running Pipelines with lower durability settings may lose >> runtime data IF they do not finish AND Jenkins is not shut down >> gracefully. If this happens, they behave like FreeStyle builds (logs, but >> no steps to visualize). Details at bottom. >> >> * Maximum durability ("MAX_SURVIVABILITY") - behaves just like Pipeline >> did before, slowest option. Use this for running your most critical >> Pipelines. >> >> * Less durable, a bit faster ("SURVIVABLE_NONATOMIC") - Writes data with >> every step but avoids atomic writes. On some filesytems, especially >> networked ones (i.e. NFS), this is faster than maximum durability mode, but >> it carries a small extra risk (details at bottom). >> >> >> *Nitty-gritty details* >> >> Remember: worst-case behavior reverts to something like FreeStyle builds >> -- Pipelines that cannot persist data may not be able to resume or >> displayed in Blue Ocean/Stage View/etc, but will have logs. >> >> Running pipelines with the performance-optimized setting may lose data IF >> they do not finish AND Jenkins is not shut down gracefully. A "graceful" >> shutdown is where Jenkins goes through a full shutdown process, such as >> visiting http://[jenkins-server]/exit or using one of the gentler signals >> to kill the process. A "dirty" shutdown is where the Jenkins process dies >> without doing shutdown tasks -- killing a Docker container or using "kill >> -9" to terminate the Java process will do this. >> >> The less-durable/a bit faster setting avoids atomic writes -- what this >> means is that if the Operating System fails, data that is buffered for >> writing to disk will not be flushed and will be lost. This is quite rare, >> but can happen as a result of Docker or virtualization operations that halt >> the operating system or disconnect storage. Or, y'know, if someone pulls >> the plug. >> >> >> *Warnings* >> This has extensive unit testing, plus initial code review and some manual >> testing BUT it is still a beta, so there's some risk. Take appropriate >> precautions - back up JENKINS_HOME, don't deploy to a critical Jenkins >> instance, etc. >> >> Think of it as an early Christmas gift, and happy holidays to all! >> > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/6980604c-b524-433a-bf6b-547a430c2bbd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
