Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Nov 1997 16:55:38 -0500 (EST)
From:      "John S. Dyson" <toor@dyson.iquest.net>
To:        mrcpu@cdsnet.net (Jaye Mathisen)
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Serious performance issue with 2.2.5-RELEASE
Message-ID:  <199711202155.QAA03288@dyson.iquest.net>
In-Reply-To: <Pine.NEB.3.95.971120121353.23652R-100000@mail.cdsnet.net> from Jaye Mathisen at "Nov 20, 97 12:17:36 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Jaye Mathisen said:
> 
> 
> I upgraded my web server to 2.2.5 from 2.2.2-stable, dated sometime in
> July.  
> 
> Big mistake.
> 
> The only update to take place was the make buildworld, make installworld,
> no other configuration files were modified, nor any changes to startup
> scripts, etc.
> 
> I now get these weird pauses where everything on the machine just freezes
> for 30-40 seconds, sometimes longer.  NFS is compiled in, but not in use.
> 
> The system was a web server, and was happily serving up several hundred
> domains.  Now with the upgrade, I'll be lucky to keep them.  Not good.
> 
> It's a Super Micro P6, 384MB RAM, 2 SCSI disks off a bus-logic controller.
> 
> Any ideas appreciated.  I have built a new kernel from sources supped
> 11/7, but it doesn't seem to be any better.
> 
Try this patch.  The change in vfs_bio from 2.2.2 to 2.2.5 appears to be
incorrect, and subverts part of the functionality of what getnewbuf is
supposed to do.  (Sorry, the patch might be reversed.)


Index: sys/kern/vfs_bio.c
===================================================================
RCS file: /local/home/ncvs/src/sys/kern/vfs_bio.c,v
retrieving revision 1.104.2.7
retrieving revision 1.104.2.3
diff -C2 -r1.104.2.7 -r1.104.2.3
*** vfs_bio.c	1997/09/01 23:23:08	1.104.2.7
--- vfs_bio.c	1997/02/13 08:17:18	1.104.2.3
***************
*** 889,896 ****
  		/* wait for a free buffer of any kind */
  		needsbuffer = 1;
! 		do
! 			tsleep(&needsbuffer, (PRIBIO + 1) | slpflag, "newbuf",
! 			    slptimeo);
! 		while (needsbuffer);
  		return (0);
  	}
--- 872,877 ----
  		/* wait for a free buffer of any kind */
  		needsbuffer = 1;
! 		tsleep(&needsbuffer,
! 			(PRIBIO + 1) | slpflag, "newbuf", slptimeo);
  		return (0);
  	}


-- 
John
dyson@freebsd.org
jdyson@nc.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711202155.QAA03288>