Performance Constraints Of Distributed Control Loops On Linux Systems

1y ago
5 Views
2 Downloads
844.82 KB
48 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Rosa Marty
Transcription

The University of KansasTechnical ReportPerformance Constraints of DistributedControl Loops on Linux SystemsAndrew Boie and Dr. Douglas NiehausITTC-FY2008-TR-41420-05December 2007Project Sponsor:Oak Ridge National LaboratoryCopyright 2007:The University of Kansas2335 Irving Hill Road, Lawrence, KS 66045-7612All rights reserved.

AbstractThe number of distributed applications that play important roles in industry,commerce, and daily life is steadily increasing. The execution behavior constraints thatdistributed applications must meet vary widely, but those of the important sub-class, thedistributed control loops, are the focus of the work described in this report. Distributedcontrol loops have two characteristics of particular interest: (1) components of theapplication communicate with each other across machine boundaries, and (2) the end-toend response time and other aspects of control loop behavior are subject to specifiedtiming constraints. Distributed control loops have been implemented for decades, butgenerally using specialized computation platforms. Recent trends make supporting suchcontrol loops alongside other applications on low cost commercial off the shelf (COTS)platforms, particularly open source platforms, increasingly attractive. The viability of thisapproach depends crucially on which aspects of these low cost platforms constraincontrol loop performance, what the constraints are, and where in the system they arecreated. This report describes a number of experiments which explore the performanceenvelope of control loops on Linux using the increasingly popular RT-Patch, and whichindicate areas of the system constraining the performance of control loops and thuslimiting the set of distributed control loop applications which could successfully use thisexample target platform.i

Table of ContentsAbstract . iTable of Contents . iiList of Figures . iv1 Introduction. 11.1 The Problem of Interest . 21.2 Our Approach. 32 Experiment Component Software. 52.1 Datastreams. 52.2 CLKSYNC. 62.3 NETSPEC Control Software. 72.4 KUIM Image Processing Software . 82.5 NIST Net . 82.6 Linux RT-Patch . 82.7 Summary . 93 Design and Implementation of Control Loop Experiments. 103.1 ETTCP . 103.2 Stimulus-Response Experiment . 103.3 Distributed Pipeline . 113.4 Video Control Loop . 123.4.1 Video Capture Machine Threads. 133.4.2 Processing Machine Threads . 143.4.3 Video Display Machine Threads. 143.5 Performance Metrics and Experimental Parameters. 154 Experimental Results and Their Implications. 154.1 Common Issues/Observations. 154.1.3 CLKSYNC Resolution. 154.1.2 Unusual End-to-End Response Time and 'Gaps' in Video Throughput . 164.2 Stimulus-Response. 194.2.1 CLKSYNC Offset/Frequency Adjustments . 194.2.2 Packet Transmission Times. 194.3 Distributed Pipeline . 204.3.1 IP Datagram Transmission Time. 204.3.2 End-to-End Response Time . 214.3.2.1 Repeating Parallel Lines . 214.3.2.2 Competing CPU Load. 224.3.2.3 Competing Network Load. 234.4 Distributed Video Tracking. 244.4.1 IP Data Transmission Time . 244.4.1.1 Initial Warm-Up Period of More Chaotic Behavior. 244.4.1.2 Regular Bands of Inactivity . 264.4.2 Aggregate Performance Data . 264.4.2.1 Aggregate IP-Level Delay. 274.4.2.2 Aggregate User-Level Video Frame delay. 274.4.2.3 Aggregate Control Loop Delay. 28ii

4.4.3 Competing Loads . 294.4.3.1 Competing CPU/Disk Load . 294.4.3.2 Competing Network Load. 304.5 Implications for Control Loops. 314.5.1 Clock Synchronization. 324.5.2 Periodic Behavioral Variation Effects. 325 Conclusions and Future Work. 336 References. 367 Appendices. 38A. Datastreams. 38A.1 Entity Types . 38A.1.1 Events. 38A.1.2 Intervals. 38A.1.3 Counters . 38A.1.4 Histograms . 39A.2 Entity Namespace . 39A.3 Data Stream Management . 39A.4 Datastreams Kernel Interface. 40A.4.1 DSKI Daemon. 40A.5 Datastreams User Interface . 40A.5.1 Header File Generation . 40A.6 Datastreams Post-Processing (DSPP) . 40A.6.1 Configuration Files . 41A.6.2 Filters . 41A.6.3 Output Formats . 41B CLKSYNC Kernel Patch . 41C. NETSPEC Control Software. 42C.1 Phased Execution Model. 42C.2 LibNETSPEC . 42C.3 NETSPEC Controller . 43iii

List of FiguresFigure 3.2.1: Simple Stimulus-Response Experiment Structure. 10Figure 3.3.1: Abstract Distributed Pipeline Configured as a Control Loop. 11Figure 3.4.1: Object Tracking Video Processing Application. 13Figure 4.1.1: Small IP Transmission Time. 16Figure 4.1.2: End-to-End Response Time. 17Figure 4.1.3: Video IP Datagram Transmit Time. 18Figure 4.2.1: CLKSYNC Adjustments . 19Figure 4.2.2: Server to Client Transmit Time . 20Figure 4.2.3: Server to Client Transmit Histogram. 20Figure 4.3.1: Small IP Datagram Transmit Time . 21Figure 4.3.2: End-to-end Response Time . 21Figure 4.3.3: CLKSYNC Adjustments Made . 22Figure 4.3.4: IP Datagram Transmission . 22Figure 4.3.5: End-to-end Response Time . 23Figure 4.3.6: End-to-end Response Time . 23Figure 4.4.1: No NIST-Net Delay. 24Figure 4.4.2: 200ms NIST-Net Delay . 25Figure 4.4.3: Frame Transmission Interval 1 . 25Figure 4.4.4: Frame Transmission Interval 2 . 26Figure 4.4.5: Aggregate IP-Level Delay . 27Figure 4.4.6: Aggregate Frame Transmit Time. 28Figure 4.4.7: Aggregate Control Loop. 28Figure 4.4.8: Clock Synchronization . 29Figure 4.4.9: Video Transmission Time . 30Figure 4.4.10: IP Datagram Transmission . 30Figure 4.4.11: IP Datagram Transmission. 31iv

1 IntroductionThe number of distributed applications that play important roles in industry,commerce, and daily life is steadily increasing. The execution constraints of thesedistributed applications vary widely, ranging from simple constraints of adequateperformance to prevent users from having to wait too long, to complex constraints on thetiming of specific application behaviors affecting system profitability, in the case ofbusiness support or industrial automation systems, and even affecting issues of health andsafety in the case of many control systems. Under current practice, the likelihood thatspecialized system software and application architectures are required increases with thestringency of the behavior constraints of the application, particularly with those affectinghealth, safety, and economic profitability. Such specialization is required to satisfy therequired system behavioral constraints, but often comes at considerable cost. Specializedsoftware architectures are required because those used for most commercial off the shelf(COTS) systems concentrate on optimizing the average case performance of genericapplications. General purpose COTS systems make no effort to either represent or tosatisfy the precise computational behavior constraints of many distributed applications.Distributed control loops of many forms with a wide range of behavioral constraintsare an increasingly common class of applications which have execution behaviorconstraints specific to their application semantics. When the time scale of the behavioralconstraints of the application is large enough, then conventional systems can generallysatisfy them, although this can vary with other loads on the system. Developers of mostof these applications would like to be able to use conventional systems, if possible. Inmany cases they have to use conventional systems due to economic constraints if theapplication cannot support the additional cost of specialized support. Precisemeasurement of application and system behavior under a variety of system loads is thusimportant to such developers in determining whether application behavior constraints aresatisfied, and why any violations occur so they can be corrected. Distributed controlloops present a particularly difficult challenge, since behaviors that must be evaluatedinclude those that cross machine boundaries, which in turn means that thesynchronization of clocks on the various machines involved has a crucial influence on theaccuracy of the behavioral evaluation.Evaluation of distributed control loops must be done realistically and must considersystem behavior at both the application and system level. The reason for this is thatunexpected relationships among system activities and control loop application behaviorsmust be detected and then resolved. One of the most difficult development scenarios isthe intermittent fault that seems to occur randomly, or which only occurs undercircumstances apparently unrelated to the fault. For example, in August 2007 usersbegan noticing an unexpected link between network performance of Microsoft's newVista operating system and the apparently unrelated activity of playing music orvideo[13]. Interested parties quickly discovered that the source of this behavioral linkwas the semantics of the Vista Multimedia Class Scheduler (MMS) [14] which givespreference to multimedia applications in several ways, one of which places specific limitson network throughput. Under detailed examination it turned out that the MMS networkthroughput limits were expressed as specific values which were appropriate to 100 Mb/snetworks, but which were far too small for 1 Gb/s networks. Thus, when users with an1

active 1 Gb/s network connection began playing music or watching a video, throughputon their active network connection suddenly dropped.Distributed control loop applications are potentially sensitive to such unexpectedinteractions with applications competing for both CPU and network resources becausesuch interactions may result in violating their behavioral constraints. When the time scaleof the constraints is small enough, only specialized operating system and customizedhardware support is sufficient. Between these two extremes lie distributed control loopapplications whose ability to use standard operating system support or need to useexpensive specialized systems is unclear until it can be accurately measured.Those applications with the most stringent constraints are likely to continue usingcostly specialized system software, in part because the cost of the system support isinsignificant compared to other costs. However, an increasing range of distributed controlloops would benefit greatly from being able to use less costly system support. Linux isincreasingly popular for a variety of reasons, not the least of which is lower cost [1,2,3].However, often equally or even more important is that as open source, all parts of thesystem are open to examination and modification as required to implement a givensystem. Use of open source also ensures that a given company will always have access totheir chosen implementation platform which is not true of commercial platform offeringswhich may be changed or discontinued at the whim of their owners.For these and other reasons, Linux has long been of interest as a target platform forsystems with real-time and other specialized behavioral constraints. At first this interestwas limited, because Linux's ability to satisfy these constraints and the ability ofdevelopers to measure behavior to verify constraint satisfaction or diagnose violationwere both limited. However, many interested parties developed a number of ways toimprove both precise computation control [6,15,19,23,24] and performance evaluation[4,20,21,22]. Previous efforts at the University of Kansas considered synchronized andadaptive distributed computations which, although they did not explicitly implementcontrol loop applications, provided relevant experience in pushing the performance limitsof the Linux platform [17,18].In the last two years, the Linux RT-Patch, managed by Ingo Molnar, has emerged asa focus for much of the system development addressing specialized applicationconstraints [12]. As its name indicates, it is primarily motivated by real-time applications,but many of its features also improve the ability of Linux to permit precise computationcontrol in service of other types of application constraints. One of the most importantaspects of the RT-Patch is that it is well accepted as a testing ground for featuresmigrating into the main line Linux kernel. Some of its simpler features have alreadymade it into the mainline kernel [16], while others are scheduled for inclusion in futurereleases. Even those features not yet scheduled for migration into the main line kernel areenjoying increasing popularity, since many developers of real-time systems are perfectlywilling to use the RT-Patch as their target platform.1.1 The Problem of InterestApplications involving control loops are an important class of applications whichare sensitive to the timing of their behavior. In many emerging control applicationscomponents of various control loops will be widely distributed. Developers creatingapplications containing distributed control loops are thus vitally interested in the ability to2

precisely evaluate the behavior of their applications on a specific target system under avariety of conditions, as well as the ability to precisely control that behavior.The study described in this report concentrates on the ability to evaluate specificinstances of behavior as well as aggregate measures of longer-term behavior ofdistributed control loops. This is a vital form of support required by any developer ofdistributed control loops. Many components of the system software within thesedistributed systems can affect and constrain the overall performance of the control loopapplications. Thus, determining which aspects of the system software create suchconstraints, and, when possible, why they are created is fundamental to effective andefficient design and implementation of such distributed control loop applications. Delayconstraints imposed by supporting computational and networking components are acrucial factor in correctness of distributed control.1.2 Our ApproachWe use Linux systems as a testbed both because Linux is a likely implementationplatform and because we have source access to all components of the system, caninstrument it for performance evaluation, and modify it to determine the effects ofspecific changes to default system behavior parameters. While Linux is a likelyimplementation platform for deployed control applications, nonetheless results of theseexperiments are strongly applicable to such applications implemented on proprietaryplatforms, as long as the behavioral semantics of the system components can be made tosatisfy necessary constraints.For these experiments, we use a number of system software components developedover many years at the University of Kansas as well as two components developedelsewhere, in addition to the facilities available in a standard Fedora Core 7 or UbuntuLinux distribution. The components developed at the University of Kansas include: KUSP: KU System Programming (KUSP) modifications to the Linux Kernelincluding (1) Data Stream Kernel Interface (DSKI) [4,20,22] and (2) the CLKSYNCmodifications supporting high resolution clock synchronization across sets ofmachines. The CLKSYNC modifications to standard NTP [10] clocksynchronization made many of the measurements of distributed control loopsdiscussed in this report possible [8], since the lower resolution clocksynchronization provided by the standard NTP software is not sufficient to evaluateindividual packet transmission times. DSUI: The user-level performance evaluation support of the Data Streams UserInterface (DSUI), which together with DSKI provides integrated and detailedperformance evaluation data across both the user-OS and system-systemboundaries. This is important in many cases because it aids in determining thelocation of performance constraining factors. NETSPEC: The NETSPEC tool which permits automated control of configuration,execution and instrumentation for arbitrary distributed applications such as thedistributed control experiments which are the subject of this report. The originalversion of NETSPEC was implemented solely in support of network performanceevaluation [11]. Since then it has undergone considerable extension and, mostrecently, was reimplemented in Python as part of the work described here. At thispoint, NETSPEC is suitable for automated creation, control, and evaluation of3

arbitrary distributed computations. These new capabilities were important inimplementing and executing the distributed control loops efficiently, accurately, andreproducibly. KUIM: The KU Image Processing (KUIM) software that was used to implementthe distributed video control loop experiment discussed here. It was also used toimplement the application driving problem for another part of the project, and thuswas a reasonable framework choice for our example application.Three significant components of these experiments developed elsewhere whichare not part of a standard Linux distribution are: NIST-Net: This software executes on an independent Linux router that introducesdelays, packet drops or repetitions according to behavioral parameters specified aspart of the experimental design. NIST-Net thus simulates a range of realistic effectson network communications supporting the control loop experiments and thusaffecting the behavior of the control loop applications [5]. ETTCP: An enhanced version of the venerable ttcp program which is used toprovide network loads of specified characteristics under NETSPEC control in theexperiments described here [7]. RT-Patch for the Linux Kernel: Started and currently managed by Ingo Molnar, acore Linux Kernel developer working for Red Hat, the RT-Patch currently containscode contributed by a number of kernel developers [12]. The RT-Patch contains anumber of components that are related in one way or another with improving theability of Linux to be used for real-time applications. The major focus of this patchremains the reduction of Linux event response latency, which has an obviousinfluence on the suitability of the system for real-time applications such as thedistributed control loops which are the focus of this report. Many modifications ofLinux which were developed and tested as part of the RT-patch have already beenincorporated into the mainline Linux kernel, and to our knowledge, all of the RTPatch features which are required by the work presented here are scheduled forinclusion in the mainline Linux kernel in the next few releases.Our investigation of distributed control loop performance and of the aspects ofsystem support for them that constrain their performance involved the implementation ofa number of experiments. The first two, ettcp and Stimulus-Response, served in part assanity checks for the various components of our system and application instrumentationas well as the post-processing analysis required to derive a common global time-line forevents occurring on the various components supporting the distributed control loops.They also served as the context for calibration of the overheads and resolution of ourmeasurement method. They continue to serve as part of our regression tests for theevaluation framework used in other tests.The Distributed Pipeline experiment is an abstract emulation of a set ofcommunicating processes implementing a distributed application computation. Messagestravel across process and machine boundaries until they reach the sink process. Thecomponents of the computation can be arbitrarily distributed across system boundaries.When the sink process is on the same machine as the source, this simulates a controlloop.The Distributed Video Control loop is a video tracking application which involvescapturing a stream of video frames from a camera, transmitting the video stream across a4

network to an arbitrary set of processing nodes which analyze the contents and trackobjects, forwarding the video to a third display machine. The tracking components canalso generate camera pan-tilt-zoom messages as required, to keep the object beingtracked within the video frame, thus closing the control loop.The rest of the report discusses the tools we used to implement the experiments inSection 2, the design of the experiments in Section 3, the results of the experiments andtheir implications in Section 4, while conclusions and possible topics for future work isdiscussed in Section 5.2 Experiment Component SoftwareThe various software components are used to create executing application softwarethat either implements a plausible control loop application directly, or strongly emulatesthe relevant computation and communication behaviors of such applications forperformance evaluation purposes.We first describe the Datastream components that support the collection andanalysis of performance data. We then describe the CLKSYNC improvements to clocksynchronization necessary for effective evaluation of the distributed control loopapplications. We then briefly describe (1) the NETSPEC application helping automatethe configuration, execution and instrumentation of the distributed applicationexperiments, (2) the KUIM Image processing library used in the distributed video controlloop experiment, and (3) the NIST-Net router used to simulate a variety of realisticnetwork conditions.2.1 DatastreamsDatastreams is a Linux kernel patch, user-level library, and related tools forcollecting and analyzing performance data. Developers place instrumentation pointmacros within the kernel or user-level applications, and during execution a binary filecontaining the instrumentation data is written to the disk. The data within this binary filecan be further analyzed, filtered, and transformed using the Datastreams Post-Processingsoftware (DSPP). While the current version is a logical extension of the original [4], ithas undergone considerable revision, rewrite, and extension over the years. The currentversion is considerably more powerful and useful than even a fairly recent version[20,22].Datastreams (DS) has several points of similarity with the Linux Trace Toolkit(LTT) which is a popular way for developers to evaluate the performance of Linuxsystems [21]. We used Datastreams in the work described here for several reasons. First,and most compel

The number of distributed applications that play important roles in industry, commerce, and daily life is steadily increasing. The execution behavi or constraints that distributed applications must meet vary widely, but those of the important sub-class, the distributed control loops, are the focus of the work described in this report. Distributed

Related Documents:

Constraints (Cs) are bounds on acceptable solutions. There are two kinds of constraints: input constraints and system constraints. Input constraints are imposed as part of the design specifications. System constraints are constraints imposed by the system in which the des

Distributed Database Design Distributed Directory/Catalogue Mgmt Distributed Query Processing and Optimization Distributed Transaction Mgmt -Distributed Concurreny Control -Distributed Deadlock Mgmt -Distributed Recovery Mgmt influences query processing directory management distributed DB design reliability (log) concurrency control (lock)

1.2 Assembly Constraints You use assembly constraints to create parametric relationships between parts in the assembly. Just as you use 2D constraints to control 2D geometry, you use 3D constraints in an assembly to position parts in relation to other parts. There are four basic assembly constraints, each with unique solutions and options. Mate .

There are key differences between Xilinx Design Constraints (XDC) and User Constraints File (UCF) constraints. XDC constraints are based on the standard Synopsys Design Constraints (SDC) format. SDC has been in use and evolving for more than 20 years, making it the most popular and proven f

Synplify constraints can be specified in two file types: Synopsys design constraints (SDC) – normally used for timing (clock) constraints. A second SDC file would be required for any non-timing constraints. FPGA design constraints (FDC) – usually used for non-timing constraints; however,

Distributed Control 20 Distributed control systems (DCSs) - Control units are distributed throughout the system; - Large, complex industrial processes, geographically distributed applications; - Utilize distributed resources for computation with information sharing; - Adapt to contingency scenarios and

implementation tools via the Xilinx NGC file when using XST Synplify Specify constraints in the SDC file or use the SCOPE GUI XST Specify constraints in the XCF file See the Synthesis Constraints section of Chapter 3 in the Constraints Guide – Software Manuals: Help Software Manuals Constraints Guide

Literacy development lies at the heart of the Grade 1–8 language curriculum. Literacy learning is a communal project and the teaching of literacy skills is embedded across the curriculum; however, it is the language curriculum that is dedicated to instruction in the areas of knowledge and skills – listening and speaking, reading, writing, and viewing and representing – on which literacy .