你往 es 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 filesystem cache 里面去。 es 的搜索引擎严重依赖于底层的 filesystem cache,你如果给 filesystem cache 更多的内存,尽量让内存可以容纳所有的 idx segment file 索引数据文件,那么你搜索的时候就基本都是走内存的,性能会非常高。
Nginx 服务器,正常运行过程中:
多进程: 一个 Master 进程、多个 Worker 进程。Master 进程: 管理 Worker 进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;监控: 监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker 进程。Worker 进程: 所有 Worker 进程都是平等的。实际处理:网络请求,由 Worker 进程处理。Worker 进程数量:在nginx.conf 中配置,一般设置为核心数,充分利用 CPU 资源,同时,避免进程数量过多,避免进程竞争 CPU资源,增加上下文切换的损耗。Nginx 为什么拥有高性能并且能够支撑高并发?
Nginx 采用多进程 + 异步非阻塞方式(IO 多路复用 Epoll)。请求的完整过程:建立连接→读取请求→解析请求→处理请求→响应请求。请求的完整过程对应到底层就是:读写 Socket 事件。