性能与可扩展性
可扩展性是指系统在负载增加或减少的情况下增加或减少性能的能力。性能是衡量系统在给定时间限制内执行其预期功能的能力。
性能:
性能与速度和效率有关。在设计性能时,您需要确保您的系统能够快速处理当前被要求完成的工作负载,没有任何问题。优化您的系统性能将有助于确保它今天和明天顺利运行。在设计性能时,您需要记住几个因素:
- 效率:您的系统完成任务的速度有多快?
- 延迟:您的系统需要多长时间才能响应请求?
- 吞吐量:您的系统可以在给定的时间内完成多少工作?
- 利用率:在任何给定时间,系统资源的使用率是多少?
- 资源争论:您的系统中是否有任何瓶颈可以减缓速度?
可扩展性:
可扩展性就是确保您的系统能够处理负载的增加。这可能意味着任何事情,从流量的突然激增到随着时间的推移逐渐增长。在设计可扩展性时,您需要确保您的系统可以根据需要弹性向上或向下扩展。这意味着能够根据需要添加或删除资源,而无需任何停机。优化可扩展性将有助于确保您的系统能够跟上现在和将来的需求。
在设计可扩展性时,您需要记住几个因素:
- 负载均衡器:您将如何在所有服务器上均匀分配流量?
- 缓存:如何缓存数据,以便快速提供流行的资源?
- 数据库:您的数据库能够处理请求的增加吗?如果需要,它们可以很容易地被分片吗?
- 异步处理:任务是否可以在后台处理,以免影响主线程的性能?
错误率
错误率只是错误数量除以尝试总数。在系统设计中,错误率很重要,因为它们可以帮助您了解系统的可靠性以及维护系统所需的资源。
什么是错误率?
错误率是不正确的输出数除以输出总数。有两种类型的输出:正确的输出和不正确的输出。所有系统都有一定程度的错误率,没有一个系统始终100%准确。根据应用程序的不同,可接受的错误率可以从0.1%到10%不等。例如,拼写检查器的错误率可能为0.1%,而导航系统的错误率可能为5%。如果您的网站流量很高,错误率较低,这意味着您的网站能够毫无问题地处理大量流量。但是,如果您有一个流量低、错误率高的网站,这意味着您的网站无法处理太多流量,需要更多工作。
如果您的服务因内部问题故意抛出错误,则应使用50倍响应代码。
错误率如何影响系统设计?
当您设计一个需要高度可用的系统(即始终以最小的停机时间启动和运行)时,错误率变得尤为重要。这是因为高可用性系统无法容忍任何错误——即使这些错误很少见。例如,如果您正在为电子商务网站设计系统,那么您最不希望的就是该网站在重大销售或活动期间关闭。停机片刻可能会使公司损失数百万美元的销售额。因此,高可用性系统的设计者不仅需要考虑发生错误的可能性,还需要考虑发生这些错误的后果。
假阳性与假阴性
假阳性是指系统错误地将某物归类为属于某个类别,而它实际上不属于该类别。例如,如果拼写检查器将“形式”一词标记为拼写错误,那将是假阳性。假阴性是指系统错误地将某物归类为不属于某个类别,而它实际上属于该类别。例如,如果拼写检查器未能将“from”一词标记为拼写错误,那将是假阴性。
如何计算错误率
要计算错误率,您需要两条信息:正确输出的数量和不正确或不完整的输出数量。然后您可以使用以下公式:错误率=不正确的输出数量/输出总数x 100
例如,假设在1000个输入中,拼写检查器产生990个正确的输出和10个不正确的输出。错误率的计算方式如下:错误率= 10 / 1000 x 100 = 1%
如您所见,尽管在1000个输入中只有10个错误的输出,但这仍然相当于1%的错误率。