![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Liunx学习
文章平均质量分 74
橘子味的茶二
我像一粒尘埃
展开
-
半同步/半异步进程池
请把 主线程和 工作线程视作主进程和工作进程这避免了因为一个进程只处理一个请求的情况下 存在很多的上下文切换的问题。原创 2024-03-29 15:19:28 · 296 阅读 · 0 评论 -
搞懂容器技术的基石: namespace
搞懂容器技术的基石: namespace (上)搞懂容器技术的基石: namespace (下)转载 2024-03-26 08:58:25 · 22 阅读 · 0 评论 -
服务器调制 调试 和测试
三个方面 系统调试 服务器调试和压力测试来优化改进服务器liunx 平台优秀特性 内核微调 可以通过修改文件的方式 来调制内核的参数。原创 2024-03-25 16:14:37 · 1117 阅读 · 0 评论 -
C++协程
如果遇到很耗时的I/O行为,则整个系统的吞吐立刻下降,因为这个时候线程一直处于阻塞状态,如果线程很多的时候,会存在很多线程处于空闲状态(等待该线程执行完才能执行),造成了资源应用不彻底。协程,英文Coroutines,是一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来管理的轻量级线程叫做『用户空间线程』,具有对内核来说不可见的特性。而协程的目的就是当出现长时间的I/O操作时,通过让出目前的协程调度,执行下一个任务的方式,来消除ContextSwitch上的开销。原创 2024-03-22 09:40:13 · 863 阅读 · 0 评论 -
liunx高性能服务编程----定时器
一种简单的定时器实现,基于升序链表的定时器实现。通过这个案例来观察 SIGALRM信号处理函数是如何处理定时器并执行定时任务的。对服务器的性能影响很大,我们需要将每个定时事件封装成定时器,再使用某种容器的数据结构,来串联这些定时器以统一管理。我们可以通过系统调用的返回值 以及errno来判断超时事件是否已经到,进而决定是否开始处理定时任务。定时是指在一段时间之后触发某段代码的机制,可以在这段代码内处理所有到期的定时器。可选参数 是否重启定时器,如果是链表还要考虑是否有前后定时器的指针成员。原创 2024-03-11 14:27:18 · 426 阅读 · 0 评论 -
异常网络下TCP的可靠服务机制(慢启动、拥塞避免、快重传、快恢复)
拥塞控制的目的是提高网络利用率降低丢包率保证网络资源对每条数据流的公平性慢启动(slow start)拥塞避免(congestion avoidance)快速重传(fast retransmit)快速恢复(fast recovery)拥塞控制算法在liunx上 有多种实现,比如reno算法,vegas算法和cubic算法等。它们或者部分或者全部实现了上面上述四个部分.原创 2024-02-28 10:05:50 · 1435 阅读 · 0 评论 -
7-liunx服务器规范
该函数将PID为pid的进程PGID设置为pgid,如果pid和pgid相同,则把pid对应的进程设置为进程组首领。rsyslogd 既能接受用户日志 也能接受内核日志 用户调用syslog来将信息输出到本地UNIX域中的socket类型的文件/dev/log rsyslog则监听该文件以获取 用户进程的输出。rsyslogd守护进程收到用户进程或者内核输入的日志后 会输出到指定的日志文件中,这些都是可以配置的。这关乎用户信息的安全性。下面函数可以获取和设置当前进程的真实用户,有效用户,真实组,有效组。原创 2024-02-22 15:29:56 · 996 阅读 · 0 评论 -
I/O复用 (包含select 和 poll详解)
可以看到fd_set里面仅包含一个整型数组,数组的每一个元素就是一个文件描述符。此结构体能容纳的数量由FD_SETSIZE指定。此举限制了select能同时处理文件描述符的总量.原创 2024-02-20 11:24:08 · 1256 阅读 · 0 评论 -
三组I/O复用函数的比较
这三组I/O复用系统调用,这三组系统调用都能同时监听多个文件描述符,它们将等待由timeout参数指定超时时间,知道一个或者多个文件描述上面有事件发生时候返回,返回的就是就绪的文件描述符的数量,返回0表示没有事件发生。下面我们从事件集,最大支持文件描述符数,工作模式和具体实现等四个方面进一部分比较它们的异同,以明确在实际应用中应该使用那一个。原创 2024-02-17 14:39:22 · 706 阅读 · 0 评论 -
epoll 系列系统调用(I/O复用函数)
当往epoll内核事件上注册一个文件描述符上的EPOLLET事件时 ,epoll将以ET模式来操作当前文件描述符.ET模式是epoll的高效工作模式。epoll_data_t 是个联合体,其四个成员 中使用最多的是fd,它是指定事件所从属的目标文件描述符。该函数返回的文件描述符将作用于其他所有epoll系统调用的第一个参数,以指定要访问的内核事件表。该函数成功时返回就绪的文件描述符的个数,失败时 返回-1 并设置相关的errno。其次,epoll把用户关心的文件描述符上面的事件放在内核里的一个事件表中,原创 2024-02-08 17:23:25 · 879 阅读 · 0 评论 -
liunx相关基础知识的学习
Linux ssh命令详解原创 2024-01-08 09:54:43 · 348 阅读 · 0 评论 -
liunx下的PV操作 对同一段代码同时只能有一个进程运行
信号量,是一种特殊的变量。只能对信号量执行P操作和V操作P操作, 如果信号量的值 > 0, 则把该信号量减1如果信号量的值 ==0, 则挂起该进程。V操作: 如果有进程因该信号量而被挂起,则恢复该进程运行如果没有进程因该信号量而挂起,则把该信号量加1注意:P操作、V操作都是原子操作,即其在执行时,不会被中断。注意:此指的“信号量”是指System V IPC的信号量,与线程所使用的信号量不同。该信号量,用于进程间通信。原创 2023-01-31 12:28:40 · 412 阅读 · 0 评论 -
记录Liunx下用make编译文件的时候遇到的一些问题
1:用的是ubantu系统下载 apt-get install make2:下载后注意要同时下载gcc3:make: 没有指明目标并且找不到 makefile。 停止?在需要编辑文件的路径创建文件Makefile 才能让make识别4: “makefile:2: *** 遗漏分隔符 。 停止。”gcc、rm、cp前面是tab分割符,不能用空格。原创 2023-01-23 22:50:45 · 1050 阅读 · 0 评论