There is one very important quirk that I need to report. The dual opteron reports 4,096MB of ram, as expected.
However, the two Pentium IV servers with 4 physical gig of RAM in them report only 3,584MB of RAM. I fiddled with the chips to confirm that each of them really is 1 Gig, and that's not it. I also poked around in the bios (in an uneducated manner), but saw nothing to fix.
Here's the setup... I haven't yet physically labelled the machines with their names. This list starts with the Opteron and goes up in ip numbers by one.
2U Opteron - 4 gig of ram 1 - 2 1 - 2 1 - 4 1 - 4 1 - 1 1 - 1 1 - 1 1 - 1
The idea is that for now, we'll have 2 squids, 2 webservers, and 1 database server. The other 4 machines with 1 gig of ram could be pressed into service with or without ram upgrades, or can be used as-is for auxiliary services. At least one is going to be the mail server, and probably another will be the nameserver.
memtest86 will run overnight, and if (as I expect) all goes well, we will be ready for production tomorrow. If the machines can only recognize 3.5GB of RAM instead of 4, that isn't a joyful thing, but it really doesn't matter a LOT, I don't think.
--Jimbo
On Mon, 2 Feb 2004, Jimmy Wales wrote:
However, the two Pentium IV servers with 4 physical gig of RAM in them report only 3,584MB of RAM. I fiddled with the chips to confirm that each of them really is 1 Gig, and that's not it. I also poked around in the bios (in an uneducated manner), but saw nothing to fix.
Step away from the BIOS *grin* That is perfectly normal. Some chipsets "eat" 512M for PCI I/O space. That's where the memory went. Consult the motherboard manual for more. I would suggest leaving those machines at 3G instead of wasting 512M.
memtest86 will run overnight, and if (as I expect) all goes well, we will be ready for production tomorrow. If the machines can only recognize 3.5GB of RAM instead of 4, that isn't a joyful thing, but it really doesn't matter a LOT, I don't think.
They know it's there, but cannot map it into addressable space and still allow you to access I/O. The Linux highmem (>4G) might help but PAE (36bit mode) is a bit computationally expensive -- esp. for 80$ worth of memory(?).
--Ricky
On 2 Feb 2004 at 11:08, Jimmy Wales wrote:
There is one very important quirk that I need to report. The dual opteron reports 4,096MB of ram, as expected.
However, the two Pentium IV servers with 4 physical gig of RAM in them report only 3,584MB of RAM. I fiddled with the chips to confirm that each of them really is 1 Gig, and that's not it. I also poked around in the bios (in an uneducated manner), but saw nothing to fix.
There are two issues. First the system uses some memory address to map to IO. Some platforms allow for memory mapped IO to be done in a seperate space to actual memory address space however the x86 architecture is no one of these. If your memory is not full up this isn't a problem as IO can be mapped to addresses that aren't being used. But if the RAM in your system is at the maximum then you won't be able to use all of it.
Secondly Linux partitions the memory seen by a process as Kernel and User. The exact sizes of these can be set when the Kernel is complied. If you have 2GB or less of memory this isn't a problem the system can juggle memory between kernel and user as needed.
However on a system with 4GB you will configure the kernel to have 512GB and give the rest to user. However on a 32 bit system there is not much room to move. A user process can only access 3.5GB, so Squid would be limited to 3.5GB even though more memory might be free. You can lower the amount reserved kernel, but then you place a hard limit on the memory the kernel can use and may run into trouble if it needs more memory than you have let it have.
I hope I have explained this well, it is complex and I have tried to keep it simple.
Also some versions of malloc don't work well when you go over 3GB.
My suggestion, if the 1GB from each of the 4GB machines can be put to good use elsewhere then do so. Otherwise it won't hurt to leave it where it is. However if you really want to get use of 4GB you'll really need a machine with a 64 bit architecture.
Richard Gallagher
Richard Gallagher wrote:
My suggestion, if the 1GB from each of the 4GB machines can be put to good use elsewhere then do so.
Right now of the 8 Pentium IV class machines, we have: 2 at 4GB (3.5 actual) for squids 2 at 2GB for webservers 4 at 1GB for whatever
My feeling is that this is a reasonable configuration to start with and now that it's toally no big deal for me to switch them around (as opposed to paying Jason's salary for a whole day to just drive down to San Diego and back, plus usually a hotel stay), we needn't worry too much about it.
I think that the 4x1GB machines would be perfectly servicable as webservers if we needed them. At least 2 of them will be used for mail and DNS, I suppose, and that certainly isn't RAM intensive.
--Jimbo
wikitech-l@lists.wikimedia.org