1. A method for simulating a computer system, comprising: defining a set of building blocks comprising models of components of the computer system; interconnecting the set of building blocks to produce a topological model of the computer system; deriving a client transaction model based on historical data, for generating simulated client requests to be processed by the topological model; producing a resource requirement model based on the topological model and on the historical data, the resource requirement model simulating a resource utilization of the components of the computer system responsively to the generated client requests; and estimating a performance metric of the computer system by simulating the computer system using the simulated client requests and the resource requirement model, wherein deriving the client transaction model comprises deriving a user behavior model comprising one or more session types, which comprise characteristic sequences of client request types, and wherein deriving the user behavior model comprises: defining simulated clients; defining for each simulated client a session type frequency vector comprising relative frequencies of initiating the one or more session types by the simulated client; and classifying the simulated client in a client cluster responsively to the session type frequency vector.