so far i know of \"ab\" and \"httperf\", both can check the performance of a website. is one better than the other?
Well, it does depend a bit on what you want to check, but I always use httperf myself.
The key difference is that httperf attempts to send a continuous stream of requests at a given speed regardless of whether they are answered or not. This can show you not only what your web server's maximum load is, but more importantly, its behaviour when overloaded. Many applications have the unfortunate characteristic of performance that falls off rapidly as the offered load goes higher than the server can handle: i.e., when offered 100 requests per second, it can handle 80 of them, and when offered 150 requests per second it can handle only 10 of them.