1、增加缓存,减少磁盘的访问次数。
2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。
3、设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。
4、应用合理的RAID策略提升磁盘I/O。
1、减少网络交互的次数(多次请求合并)。
2、减少网络传输数据量的大小(压缩),比如优化图片大小,压缩js,css文件大小。
3、尽量减少编码(尽量提前将字符转化为字节,或者减少从字符到字节的转化过程。)
4、使用浏览器缓存。
5、减少cookie传输。
6、合理布局页面。
7、使用页面压缩(gzip)。
8、延迟加载页面。
9、CSS在最上面,JS在最下面。
10、CDN缓存静态内容,提高响应速度。
11、反向代理
12、页面静态化
13、异地部署
拒绝服务和关闭服务
有些服务天然具有幂等性,比如讲用户性别设置为男性,不管设置多少次,结果都一样。但是对转账交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才能继续执行。
(注:幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的. 声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试.)
7.减少DNS查询次数
8. 代码优化
提高代码质量,减少重复代码,使用效率更高的算法,少使用递归。