![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高并发
文章平均质量分 90
hbnn111
写作是这个时代最好的投资,只有通过输出,向别人讲清楚自己所学,才能让自己更进一步。如果还有幸得到同业的指正,更是收获颇丰。
个人网站:hbnnforever.cn
展开
-
Nginx实现高并发
nginx引入了一个叫accept_mutex的互斥锁,同一时刻可以保证只有一个worker获取到互斥锁,只有成功获得锁的worker才可以accept请求,执行后续的请求处理流程,同时ngx_accept_disabled减1。之前写过一篇关于gunicorn介绍的,其进程模型也是采用了相同的思想,只是每个worker的处理方式不同。真正处理请求的是worker。可以看到,通过这种方式,Nginx的IO多路复用不出现空闲事件,间接上实现了异步非阻塞,是框架层面实现的异步,而非OS层面epoll的同步。原创 2024-03-08 23:20:24 · 950 阅读 · 0 评论 -
写时复制简介
PHP 在管理内存方面有一个机制叫写时复制(COW,Copy On Write),保证了变量间复制值不浪费内存:当一个变量的值复制到另一个变量时,PHP 没有为复制值使用更多的内存,相反,它会更新符号表来说明两个变量拥有相同的内存块,所以当执行下面的代码时并没有创建一个新的数组。写时复制技术(Copy on Write)是比较常用的一种技术,它的主要目的是延迟减少以及延迟内存的分配,增加执行效率,只有在真正进行写操作的过程中才会真正分配物理资源。相反,Java的读写锁中,读写是完全互斥的,能实现强一致性。原创 2024-03-03 21:19:21 · 1440 阅读 · 0 评论 -
Linux零拷贝技术浅谈
内核态:Ring0级别,运行在内核空间中,可以执行任何操作并且在资源的使用上没有限制。用户态:Ring3级别,运行在用户空间中,访问资源受限。内核缓冲区:Page Cache,在操作系统级别,提高磁盘IO效率,优化磁盘文件的读写操作。读文件:Files: 1写文件:将更改数据写入到PageCache,并标记为dirty,随后操作系统负责将数据刷新到磁盘中。回写机制包括: write back和write through。原创 2024-02-26 10:33:39 · 1162 阅读 · 0 评论 -
Redis的big key问题介绍以及监控手段
Redis 的big key是指value占用内存空间较大的键值。通常,针对不同的数据类型会用元素个数或者占用空间大小来衡量bigKey:String:value占用空间超过5MB(实际使用避免超过1MB);集合(list,set,zset):成员数量超过1万个(实际使用避免超过2000个);hash:field成员个数1000个,但value总大小超过100M(实际避免超过10MB);原创 2024-02-01 10:58:26 · 1526 阅读 · 1 评论 -
记录一下我们最近在压测过程中调优的过程
这次压测、调优的过程非常有趣,发现问题、排查问题、解决问题这一整个过程真是收获满满。当你看到压测结果通过调优后性能有明显的上升后,还是非常有成就感的,这也是属于我们技术人的一种小幸福吧。最后想说,永远不要轻视测试,包括单元测试,集成功能测试,压力测试。原创 2024-01-17 10:46:40 · 875 阅读 · 0 评论