摘要:
MVC 架构 MVC 前端: View 层 后端: Control 层 && Model 层 Serverless 解决问题的边界,就是服务端的边界,即服务端运维。 Serverless 狭义 Serverless(最常见)= Serverless computing 架构 = FaaS 架构 = 阅读全文
摘要:
C10K C10K 和 C1000K 的首字母 C 是 Client 的缩写。C10K 就是单机同时处理 1 万个请求(并发连接 1 万)的问题,而 C1000K 也就是单机支持处理 100 万个请求(并发连接 100 万)的问题。 I/O 的模型,在 C10K 以前,Linux 中网络处理都用同步 阅读全文
摘要:
磁盘 无论机械磁盘,还是固态磁盘,相同磁盘的随机 I/O 都要比连续 I/O 慢很多。 对机械磁盘来说,,由于随机 I/O 需要更多的磁头寻道和盘片旋转,它的性能自然要比连续 I/O 慢。 而对固态磁盘来说,虽然它的随机性能比机械硬盘好很多,但同样存在“先擦除再写入”的限制。随机读写会导致大量的垃圾 阅读全文
摘要:
索引节点和目录项 文件系统,是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 Linux 文件系统为每个文件都分配两个数据结构,索引节点(index node)和目录项(directory entry)。它们主要用来记录文件的元信息和目录结构。 索引节点,简称为 in 阅读全文
摘要:
内存回收 内存资源紧张会导致内存回收和 OOM 杀死进程。 内存回收,也就是系统释放掉可以回收的内存,比如缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做文件页(File backed Page)。 大部分文件页,都可以直接回收,以后有需要时,再从磁盘重新读取就可以了。而那些被应用程序修 阅读全文
摘要:
缓存命中率 命中率越高,表示使用缓存带来的收益越高,应用程序的性能也就越好。 Linux 系统中并没有直接提供缓存查询接口,需要使用工具 cachestat 和 cachetop 查看: cachestat 提供了整个操作系统缓存的读写命中情况。 cachetop 提供了每个进程的缓存命中情况。 这 阅读全文
摘要:
内存映射 Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。 虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长(也就是单个 CPU 指令可以处理数据的最大长度)的处理器,地址空间的范围也不同。比 阅读全文
摘要:
CPU优化 我们接下来从应用程序和系统的角度,分别来看看如何才能降低 CPU 使用率,提高 CPU 的并行处理能力。 应用程序优化 首先,从应用程序的角度来说,降低 CPU 使用率的最好方法当然是,排除所有不必要的工作,只保留最核心的逻辑。比如减少循环的层次、减少递归、减少动态内存分配等等。除此之外 阅读全文
摘要:
中断 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。 由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。如果中断本身要做的事情不多,那么处理起来也不会有太大问题;但如果中断要处理的事情很多,中断服务程序就有可能要运行很长时 阅读全文
摘要:
CPU使用率 Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息,而 /proc/stat 提供的就是系统的 CPU 和任务统计信息 proc process information pseudo file system 查询 man proc 关键指标常用参数 user 阅读全文