* In ResourceLoaderContext, lazy-load $this->direction and $this->language, to avoid...
[mediawiki.git] / maintenance / lag.php
blob3bd94f08032c561942aa0d0a526c8713d47a6082
1 <?php
3 /**
4 * Shows database lag
6 * @ingroup Maintenance
7 */
9 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
11 class DatabaseLag extends Maintenance {
12 public function __construct() {
13 parent::__construct();
14 $this->mDescription = "Shows database lag";
15 $this->addOption( 'r', "Don't exit immediately, but show the lag every 5 seconds" );
18 public function execute() {
19 if ( $this->hasOption( 'r' ) ) {
20 $lb = wfGetLB();
21 echo 'time ';
22 for ( $i = 1; $i < $lb->getServerCount(); $i++ ) {
23 $hostname = $lb->getServerName( $i );
24 printf( "%-12s ", $hostname );
26 echo "\n";
28 while ( 1 ) {
29 $lb->clearLagTimeCache();
30 $lags = $lb->getLagTimes();
31 unset( $lags[0] );
32 echo gmdate( 'H:i:s' ) . ' ';
33 foreach ( $lags as $lag ) {
34 printf( "%-12s " , $lag === false ? 'false' : $lag );
36 echo "\n";
37 sleep( 5 );
39 } else {
40 $lb = wfGetLB();
41 $lags = $lb->getLagTimes();
42 foreach ( $lags as $i => $lag ) {
43 $name = $lb->getServerName( $i );
44 $this->output( sprintf( "%-20s %s\n" , $name, $lag === false ? 'false' : $lag ) );
50 $maintClass = "DatabaseLag";
51 require_once( DO_MAINTENANCE );