the quickest way to see what your memory hogs are is to run a shell command that lists memory by process. top gives a summary that updates in real time. ps (use the command ps axuf to list all processes including subprocess… it may be more than a screen and you’ll need a pager to look through it, like less or most) …
then RSS is resident memory and if you do the list with ps you can see which process (or subprocess) is the memory hog.
by default there’s a few things enabled on dreamhost servers you may not even need or use, and you can save memory by deactivating them. mail goes to dh’s mail server by default so turn off courier (and postfix if you don’t send mail from the machine). proftpd if you don’t use an ftp server (sshd provides sftp which is better to use unless you need a public ftp server). maybe a few other things. i nixed supervisord because it does nothing i need. and jabber. and maybe some other stuff that was running by default. all that eats memory.
the scripts to start these things are in the directories /etc/rc.d where whatever is your machine’s current runlevel (which the runlevel command will tell you). you change the links for the things you want to deactivate to K01whatever from S03whatever (just do for example mv S02jabber K01jabber, it’s a lot of typing…)
i think mysql is enabled on servers by default. but if you use dreamhost control panel to set up your database, you may not even be using your local machine’s mysql at all, so that can go too. (though it’s (much) faster if you do use it, there’s an option on the panel to move your databases there). if you don’t definitely disable that too.
so after you disable a bunch of stuff, reboot your machine, run ps axuf again to see what is still running, you should be seeing less memory gobbled up.
about getting httpd to use less memory, there’s tons of web pages on that. you want to run less servers basically. i forget how to configure it off the top of my head, just google for that, there’s guides out there.