첫번째로 응답속도가 있다. 고객이 요청하고 응답받는데 걸리는 시간을 말한다. 응답은 시간은 두 부분으로 나뉘는데 하나는 처리 시간이다. 즉 코드나 데이터베이스에서 처리하고 응답을 주는데 까지 걸리는 시간을 말한다. 프로세싱 타임이다. 다음은 대기 시간이다. 시스템에서 요청이나 반응이 지연되는 시간을 의미한다. 대기 시간은 네트워크가 연결되고 요청이 목적지까지 가는 시간을 말한다. 대부분 대기시간, 지연시간이라고 말한다.
응답시간은 정말 중요한 품질이다. 사용자와 상호작용하기 때문인데, 응답 시간이 길어질수록 사용자는 화가 날 확률이 높다. 엔지니어가 가장 오해하는 것중 가장 중요한 것인 응답시간이며 그것이 곧 성능이라고 말하지만 아니다.
어떤 시스템에서는 처리량이 가장 중요한 성능일 수도 있다. 1초마다 처리한 작업의 수와 양이 중요할 수 있다.
가끔 엔지니어들은 처리 시간만 중요시 여기며, 그것이 곧 응답시간이라고 여기곤 하지만 고객이 실제적으로 받은 시간이 응답시간이다.
실제적으로 응답을 두개 요청했다면 하나의 요청을 수행하는 대기 시간까지 응답시간에 포함되는 것이다. 때문에 응답시간 분산을 고려해야 한다. 즉 모든 고객이 똑같은 응답시간을 얻게 하는 것을 말한다.
응답시간을 저해하는 요인은 다음과 같을 수 있다.
많은 CPU 사용
많은 메모리 사용
많은 네트워크 I/O
많은 대기 메세지 큐
가장 중요한 품질 속성 중 하나인 확장성이 있다. 확장성은 시스템에 리소스를 추가함으로 증가하는 작업량을 처리하는 시스템 능력의 판단 척도이다. 일반적으로 수직 확장으로 성능의 높이를 키우거나 수평 확장을 통해 성능의 규모를 키우기도 한다.
수직 확장의 경우 많은 사용자 트래픅이 발생하는 서비스에서의 시스템 부하량이 증가하면서의 성능 저하 지점을 보고 하드웨어적 성능을 높히거나 높은 대역폭을 처리하는 네트워크 카드를 이용하는 방법이다.
반면 수평 확장의 경우 여러 대의 컴퓨터를 증설하여 부하를 나눠서 처리하는 방법이다.
수직의 장점은 코드의 수정 없이 하드웨어적으로 해결할 수 있다는 것이다. 하지만 하드웨어 성능의 상승만으로는 언젠간 한계에 부딪치게 된다. 또한 중앙 집중화된 시스템에 국한될 수 밖에 없으며 고가용성과 내결함성을 갖추지못한다.
반대로 수평의 경우에는 확장 성능에 대한 제한이 없으며 필요한 만큼 손쉽게 기기를 추가할 수 있다. 또한 필요 없다면 쉽게 제거 할 수 있어 설계를 제대로 했다면 수평 확장은 고가용성과 내결함성을 갖추게 된다. 대신 애플리케이션을 다른 컴퓨터로 옮기는 것이 쉽지 않으며 코드를 대대적으로 바꿀 필요성도 있을 수 있다.