摘要: 原理及其区别 Linux Virtual Server是通过ipvs内核模块和ipvsadm用户空间命令行工具来实现负载均衡的它支持三种工作模式: NAT模式:LVS调度器将请求转发给后端服务器,同时修改请求的目标地址为后端服务器的地址,后端服务器将响应返回给LVS调度器,再由LVS调度器修改响应的 阅读全文
posted @ 2023-03-01 16:28 yytarget 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 首先给出基本框架 #include <iostream> #include <thread> using namespace std; int main(){ int n = 100; int i = 0; //创建两个线程 thread newThread1([&n, &i](){ while(i 阅读全文
posted @ 2023-03-01 16:28 yytarget 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 什么是零拷贝 零拷贝描述的是在计算机操作系统中,CPU不执行将数据从一个内存区域,拷贝到另一个内存区域的任务。 通过网络传输文件时,零拷贝通常可以节省CPU周期和内存带宽。 零拷贝的好处 节省了CPU周期,空出的周期可以完成其它任务。 减少内存区域间的数据拷贝,节省内存带宽。 减少用户态和内核态之间 阅读全文
posted @ 2023-03-01 16:27 yytarget 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一个线程从属于一个进程;一个进程可以包含多个线程。 一个线程挂掉,对应的进程挂掉,多线程也挂掉;一个进程挂掉,不影响其它进程,多进程稳定。 进程系统开销显著大于线程开销;线程需要的系统资源更少。 多进程在执行时拥有各自独立的内存单元;多线程共享进程的内存,例如.text,.data,.bss和扩展段 阅读全文
posted @ 2023-03-01 16:27 yytarget 阅读(193) 评论(0) 推荐(0) 编辑
摘要: C++多线程 C++11引入了线程类thread,头文件为 #include <thread> 创建多线程的方法: std::thread threadName(functionName, parameter1, paramater2, …); 传递参数可以传左值,右值,引用(使用std::ref) 阅读全文
posted @ 2023-03-01 16:27 yytarget 阅读(20) 评论(0) 推荐(0) 编辑
摘要: CPU 使用top命令,然后按shift+p按照CPU排序,找到占用CPU过高的进程pid。 使用top -H -p pid命令,找到进程中消耗资源最高的线程ppid。 使用echo ‘obase=16;ppid’ | bc或者print “%x\n” ppid将线程id转换为16进制(小写)。 使 阅读全文
posted @ 2023-03-01 16:27 yytarget 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 物理内存管理 物理内存有四个层次,分别为: 寄存器:速度最快,存储空间少,价格贵 高速缓存:次之 主存:再次之 磁盘:速度最慢,存储空间最多,价格便宜 操作系统通过内存管理器对物理内存进行管理,主要工作是记录哪些内存是正在使用的,在进程需要时分配内存以及在进程完成时回收内存。 地址生成过程 内部碎片 阅读全文
posted @ 2023-03-01 16:26 yytarget 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 概要 filename 文件名 dir 文件夹名 string 字符串 username 用户名 groupname 组名 regex 正则表达式 path 路径 partition 分区名 port 端口号 IP IP地址 domain 域名 PID 进程ID host 主机名 文件命令 文件系统 阅读全文
posted @ 2023-03-01 16:25 yytarget 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 阻塞I/O至I/O多路复用 阻塞I/O指进程发起调用后会被挂起(阻塞),直到收到数据再返回。如果调用一直不返回,进程就一直被挂起。因此,使用阻塞I/O需要利用多线程来处理多个文件描述符。 引入非阻塞I/O的原因为:多线程切换有一定的开销。非阻塞I/O不会被挂起,调用时立即返回成功或错误,因此,可以在 阅读全文
posted @ 2022-11-11 17:30 yytarget 阅读(747) 评论(0) 推荐(1) 编辑
摘要: I/O阶段 典型的一次I/O分为两个阶段:数据就绪和数据读写 数据就绪:根据系统I/O操作的就绪状态 阻塞 非阻塞 区别在于:进程发起系统调用后,是会被挂起直到收到数据后再返回,还是立即返回成功或错误。 数据读写:根据应用程序和内核的交互方式 同步 异步 区别在于:将数据从内核复制到用户空间时,用户 阅读全文
posted @ 2022-11-11 16:29 yytarget 阅读(33) 评论(0) 推荐(0) 编辑