How to use compression to help life with an SSD

Since pretty much everyone thinks my love of SSDs is insane, I’ll throw another insane idea on top of it: using data compression. It makes sense. Doing it selectively, you help performance, while saving space. At a much higher cost per gig, that saved space is very nice to have.

Here’s why compression makes sense. Under many circumstances, an SSD can saturate your IDE bus. Then you run into the 56K modem problem. The bus is saturated, but you want more speed, so what do you do? Compress the data. Although data compression makes people nervous (shades of DoubleSpace I’m sure), modems have been doing this for two decades. Why? Because it works.

So while your drive is happily shoving 200 megs per second through your IDE bus, if you can compress that file by 20 percent, guess what? You’ll get 20% better throughput.

CPU usage is the main objection to this. But in my experience, NTFS compression uses 20-40% of a recent (P4-class or newer) CPU when compressing. That’s the hard part. When decompressing, overhead is a lot less. The objections to NTFS compression really date to the days when 200 MHz was a fast CPU.

I don’t recommend just compressing your whole disk. Selective compression is a lot better. There’s no use trying to compress data that’s already compressed, and a lot of our data is.

Use the command COMPACT to do the job for you. Here’s my sequence of commands:

CD \
COMPACT /S /C *.doc *.xls *.rtf *.txt *.1st *.log readme* *.bmp *.wav *.wmf *.bat *.cmd *.htm *.html *.xml *.css *.hlp *.chm *.inf *.pnf *.cat

If you have other compressible files, of course you can add those.

This is a one-time event, but you can schedule it to happen daily or weekly if you want. Just put the two lines in a batch file and create a scheduled task to run it. The command will skip any files that are already compressed. While the compression itself doesn’t take a lot of CPU time, scanning the drive does, so you might want to run it while you’re away if you’re going to schedule it.

Don’t bother trying to compress your My Music or My Pictures directories; that data is all highly compressed already, so all you do is tax your CPU for no reason when you compress that kind of data. Of course the main reason people buy 1 TB drives is because they have hundreds of gigabytes of music and movie files. It’ll be a while before storing that kind of data on SSD is practical. In that case, buy an SSD to hold the operating system and apps, and a conventional drive to hold all that data.

Some people compress their C:\Program Files directory. This can work, but some programs are already compressed. I would be more inclined to experiment with subdirectories on a case-by-case basis. Try compressing one program directory, see if it packs down any, and if it does, great. If not, uncompress it and move on.

UPX does an outstanding job of packing down program files but it’s not completely transparent. I found enough programs didn’t run afterward that I gave up on it. NTFS compression is a lot less effective, but a lot more transparent. As long as you don’t compress your swap file or hibernation file (and Windows will warn you incessantly if you even try to do that), you won’t break anything with it.

If you enjoy tinkering with things, by all means feel free to experiment with UPX. There was a time when I would have probably done it, but given a choice today between playing with data compression or playing with metalworking tools, I’d rather play with my metalworking tools.

But I do really like this SSD. For the first time in a very long time, I can sit down at a computer running modern software and it still feels fast.

The Compaq DL320 and Ghost

We got another Compaq Proliant DL320 in at work. This one’s a Windows 2000 print server (grumble grumble–we’ve been playing with HP’s Linux-based print appliances and so far I really like them).

But anyway, since rebuilding a Windows server is a much bigger deal than rebuilding a Linux server (all our other DL320s run Debian Linux), we tried building a recovery image with Ghost.

Only one problem: Ghost 7.5 doesn’t see the DL320’s IDE drives. DOS sees them just fine. But Ghost 7.5 doesn’t see them, and neither did MBRWork, a freeware partition-recovery tool that’s saved my bacon a few times. There’s something odd going on here.

In desperation, I dug out an old copy of Ghost 5.1c I found on our network. It’s from mid-1999. Oddly enough, 5.1c sees the Proliant’s CMD 649-based UDMA controller just fine. The only problem is, Ghost 5.1c doesn’t handle the changes Windows 2000 made to NTFS. It’ll make the image just fine, but when I went to try to restore it, Ghost crashed.

So I pulled out an unused copy of PowerQuest Drive Image. Drive Image worked fine. Mostly. It made the image at least. One thing I noticed was that Drive Image’s compression was a whole lot less effective than Ghost’s. The other thing I noticed was that Drive Image’s partition resizing didn’t work right. I’d re-size the partitions so they’d fit on another drive I had (I wanted to test the backup to make sure it worked, but not on the live, production drive) but no matter what I did, it reported there wasn’t enough room on the drive.

“Ghost would be so much better in every way, if it worked,” I said in frustration.

“Isn’t that true of everything?” Charlie asked. I guess he didn’t think that was the most brilliant observation I ever made. Not that I did either.

We’ve got support with both Symantec and HP, so we really ought to call them and see if they have a resolution. HP talks out of both sides of its mouth; on the one hand, I found statements on its Web site that Ghost is unsupported on Proliant hardware, and on the other I found some tools that claim to help with system deployment using Ghost.

But since this DL320 is being used to drive a printer that costs about as much as any of us make in a year, and it’s being set up by a guy who’s being flown in early this week at $2,000 a day, I’m not positive that we’re going to get a good resolution to this. I suspect we’ll just end up using Drive Image and keeping an identical drive on hand in case Windows 2000 gets suicidal on us. The price of an IDE drive is pocket change on top of all this.

But when you’re running Linux and GNU tar is a legitimate option as a backup and recovery tool, I love the DL320. It’s small, fast, and cheap. It’s funny when tools allegedly written by college students as a hobby work better and more consistently than commercial tools you have to pay for.

Well, I guess I should say it’s funny when that happens and it’s someone else who has to deal with it.

R.I.P.: One W2K box

My video editing box bit the dust earlier this week. I loaded a rather large image into Photoshop LE, and it hung. I killed Photoshop LE, and all appeared to be well. Then the desktop and Start menu went away. A few seconds later, they reappeared. They went away again, then reappeared. The cycle continued like a beating drum.
So I did what you should always do when a Windows box starts acting goofy: Reboot. And? After logging in, the problem reappeared.

So I scanned for viruses. The system was clean. I found that if I killed explorer.exe, everything else ran fine. So I could run programs from Task Manager, bring up a command line (just run cmd.exe) or bring up the old Program Manager (remember that from the worse-than-awful Windows 3.1?) and run programs that way. It’s a safe and easy way to save memory, but I really don’t care to subject myself to it on a regular basis. Explorer isn’t perfect, but Program Manager might be the worst shell I’ve ever seen. And I fear that if Explorer is constantly crashing, there’s probably something else wrong with the installation.

I tried doing a recovery install. No go. The installation media couldn’t find a Windows installation on the disk. Figures.

I don’t know if I have a Ghost image of this machine, which is a major pain. W2K got along just fine with all the hardware in the machine, but when I added the Pinnacle DV500, it took me a really long time to get it working right.

So I’m not sure what I’m going to do.

First look: The Proliant DL320

I’ve had the opportunity the past two days to work with Compaq’s Proliant DL320, an impossibly thin 1U rack-mount server. All I can say is I’m impressed.
When I was in college, a couple of the nearby pizza joints sold oversized 20″ pizzas. The DL320 reminded me of the boxes these pizzas came in. The resemblance isn’t lost on IBM: In its early ads for a competing product, I remember IBM using an impossibly thin young female model holding a 1U server on a pizza-joint set.

HP announced last week that Compaq’s Proliant series will remain basically unchanged, it will just be re-branded with the HP name. HP had no product comparable to the DL320.

I evaluated the entry-level model. It’s a P3 1.13 GHz with 128 MB RAM, dual Intel 100-megabit NICs, and a single 40-gigabyte 7200-rpm Maxtor/Quantum IDE drive. It’s not a heavy-duty server, but it’s not designed to be. It’s designed for businesses that need to get a lot of CPU power into the smallest possible amount of rack space. And in that regard, the DL320 delivers.

Popping the hood reveals a well-designed layout. The P3 is near the front, with three small fans blowing right over it. Two more fans in the rear of the unit pull air out, and two fans in the power supply keep it cool. The unit has four DIMM sockets (one occupied). There’s room for one additional 3.5″ hard drive, and a single 64-bit PCI slot. Obvious applications for that slot include a gigabit Ethernet adapter or a high-end SCSI host adapter. The machine uses a ServerWorks chipset, augmented by a CMD 649 for UMDA-133 support. Compaq utilizes laptop-style floppy and CD-ROM drives to cram all of this into a 1U space.

The fit and finish is very good. The machine looks and feels solid, not flimsy, which is a bit surprising for a server in this price range. Looks-wise, it brings back memories of the old DEC Prioris line.

The rear of the machine has a fairly spartan number of ports: PS/2 keyboard and mouse, two RJ-45 jacks, VGA, one serial port, and two USB ports. There’s no room for luxuries, and such things as a parallel port are questionable in this type of server anyway.

Upon initial powerup, the DL320 asks a number of questions, including what OS you want to run. Directly supported are Windows NT 4.0, Windows 2000, Novell NetWare, and Linux.

Linux installs quickly and the 2.4.18 kernel directly supports the machine’s EtherExpress Pro/100 NICs, CMD 649 IDE, and ServerWorks chipset. A minimal installation of Debian 3.0 booted in 23 seconds, once the machine finished POST. After compiling and installing a kernel with support for all the hardware not in the DL320 removed, that boot time dropped to 15 seconds. That’s less time than it takes for the machine to POST.

Incidentally, that custom kernel was a scant 681K in size. It was befitting of a server with this kind of footprint.

As configured, the DL320 is more than up to the tasks asked of low-end servers, such as user authentication, DNS and DHCP, and mail, file and print services for small workgroups. It would also make a nice applications server, since the applications only need to load once. It would also be outstanding for clustering. For Web server duty or heavier-duty mail, file and print serving, it would be a good idea to upgrade to one of the higher-end DL320s that includes SCSI.

It’s hard to find fault with the DL320. At $1300 for an IDE configuration, it’s a steal. A SCSI-equipped version will run closer to $1900.

Experiments running old Mac software on a new Mac

Mailbag:

Compressed ramdisk; partitioned HDD; ram limitations

Mac adventures. Nothing fun. Take my advice: Don’t bother trying to get MS Office 4.2.1b running under MacOS 9. Not that most people would try to run software that’s two versions back on a new system, but… I guess these guys didn’t have money left in their budget to upgrade their old software after paying too much for an iMac.

Now, on a PC, the answer’s simple. Multiboot an older copy of Windows. (But Office 4.21 runs just fine under newer Windows, but humor me.) I can run DOS 1.0 on a Pentium IV if I want to for some insane reason, to get the ultimate in backward compatibility. If there’s some CP/M-86 app I want to run for some odd reason, I can run CP/M-86 on a P4 too–it’ new machines is software that tries to access the IBM PC’s ROM Basic. Very few programs did. The compatibility problem you’re most likely to run into is due to programs not handling very high CPU speeds well, but that’s curable with slowdown.

Older Mac software is very hit and miss with newer versions of the OS, and you can’t do backlevel OSs on new Macs. Whatever the current OS was at the time of a model’s introduction is generally the oldest OS you can run. There’s no booting into System 7.5.5 on your G4 for optimum compatibility with a legacy app you need that hasn’t been updated.

I almost resorted to trying to run it in the vMac Mac Plus emulator , but I found the hard disk files too cumbersome to deal with–getting files into them is really a chore, and besides, vMac didn’t seem too interested in mounting a hard disk image–only floppies. It’s a real shame the excellent Basilisk Mac II emulator hasn’t been ported to the PowerMac.  I’ve used it to run 68040- software on Windows PCs in a pinch numerous times, and fast PCs emulate the 040 much faster than the real thing. A Mac Basilisk port would be a very workable solution for running finicky older software on newer machines.

Later, I spent a couple of hours trying to get an Epson Stylus 850 printer working on another iMac with a USB-to-parallel adapter. Usually it works flawlessly. This one doesn’t want to play. I got rid of the “port is in use” error I had been getting by uninstalling and reinstalling the driver (my last resort, after trashing the printer preferences, AppleTalk preferences, and everything else I could think of in the Preferences folder, then zapping the PRAM by holding down Cmd-Option-P-R at boot time and letting it chime seven times), but then Chooser asked whether the printer was connected to the printer or modem port. Answer: neither. It’s an iMac. It’s connected to USB. I humored it by trying both phantom ports, but neither setting worked. Then I downloaded a patch from Epson’s Web site and installed it. The port-in-use errors came back. Lovely. I gave up for the day. Macs are supposed to be easier? Hardly. Maybe they’re a little easier to use (I doubt it) but they sure are a lot harder to fix.

Along the way I found this useful list of extensions and control panels though . So something good came of all this.

Mailbag:

Compressed ramdisk; partitioned HDD; ram limitations