从DDR发展到DDR4,内存核心频率指标其实基本上就没太大的进步
从2001年DDR内存面世以来发展到2019年的今天,已经走过了DDR、DDR2、DDR3、DDR4四个大的规格时代了。内存的工作频率也从DDR时代的266MHz进化到了今天的3200MHz。这个频率在操作系统里叫Speed、在内存术语里叫等效频率、或干脆直接简称频率。这个频率越高,每秒钟内存IO的
2020-11-02 00:49:43阅读全文
带你深入理解内存对齐最底层原理
相信绝大多数的人都了解内存对齐,都知道变量应该按8字节去对齐,这样性能高。但是其最最底层的原理是啥呢? 有的人可能会说,因为高速缓存是以8字节为单位进行的。读者你很聪明,这是原因之一。但我今天想挖的是更底层一点的原理,让我们去内存的物理构成里找找答案!
2020-11-01 22:40:25阅读全文
追踪将服务器CPU耗光的凶手
前面我们讨论系统调用的时候结论是耗时200ns-15us不等。不过我今天说的我的这个遭遇可能会让你进一步认识系统调用的真正开销。在本节里你会看到一个耗时2.5ms的connect系统调用,注意是毫秒,相当于2500us!
2020-11-01 18:37:20阅读全文
深入分析Spring 与 Spring MVC容器
Spring Framework本身没有Web功能,Spring MVC使用WebApplicationContext类扩展ApplicationContext,使得拥有web功能。那么,Spring MVC是如何在web环境中创建IoC容器呢?web环境中的IoC容器的结构又是什么结构呢?web环
2020-11-01 15:15:10阅读全文
函数调用太多了会有性能问题吗?
在现代的开发工作中,相信绝大部分的同学手头的项目都不是从第零行代码开始搭建的。各个语言都有自己流行的代码框架,如PHP的有Laravel、CodeIgniter、ThinkPHP等等。大家都是在自己的框架的基础上添加自己的业务代码逻辑,开启开发工作。还记得我们团队有位开发同学当时问过我一个问题,我们
2020-11-01 11:41:05阅读全文
软中断会吃掉你多少CPU?
2020-11-01 10:30:10阅读全文
为什么 Go 占用那么多的虚拟内存?
前段时间,某同学说某服务的容器因为超出内存限制,不断地重启,问我们是不是有内存泄露,赶紧排查,然后解决掉,省的出问题。我们大为震惊,赶紧查看监控+报警系统和性能分析,发现应用指标压根就不高,不像有泄露的样子。
2020-11-01 07:30:53阅读全文
CentOS 搭建 K8S,一次性成功,收藏了!
2020-11-01 06:30:28阅读全文
进程/线程上下文切换会用掉你多少CPU?
进程是操作系统的伟大发明之一,对应用程序屏蔽了CPU调度、内存管理等硬件细节,而抽象出一个进程的概念,让应用程序专心于实现自己的业务逻辑既可,而且在有限的CPU上可以“同时”进行许多个任务。但是它为用户带来方便的同时,也引入了一些额外的开销。如下图,在进程运行中间的时间里,虽然CPU也在忙于干活,但
2020-11-01 02:36:32阅读全文
C/C++后台研发需要点亮哪些技能树?
在快结束的秋季招聘中,后台开发或服务器开发的岗位需求一度火热,甚至超过了算法岗。不少同学从诸神黄昏的算法岗战场上退下,转向更偏向工程能力的后台开发岗,从而造成后台开发岗位竞争的大爆发。
2020-11-01 01:41:23阅读全文
一次系统调用开销到底有多大?
首先说说系统调用是什么,当你的代码需要做IO操作(open、read、write)、或者是进行内存操作(mmpa、sbrk)、甚至是说要获取一个系统时间(gettimeofday),就需要通过系统调用来和内核进行交互。无论你的用户程序是用什么语言实现的,是php、c、java还是go,只要你是建立在
2020-11-01 00:42:08阅读全文
协程究竟比线程能省多少开销?
前文中中我们用实验的方式验证了Linux进程和线程的上下文切换开销,大约是3-5us之间。当运行在一般的计算机程序时,这个开销确实不算大。但是海量互联网服务端和一般的计算机程序相比,特点是:
2020-10-31 21:48:39阅读全文
虚拟机-centos集群搭建
我们在搭建redis集群、zookeper集群、hadoop集群、或者kafaka集群时候,都需要使用多台机器,所以搭建集群服务器是一个后端程序员基本素养。本文目标是:准备搭建5台linux虚拟机
2020-10-31 16:56:06阅读全文
Spring MVC 到 Spring Boot 的简化之路
从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷。但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的朋友能深刻体会到这一痛苦。因为即使是开发一个Hello-World的Web应用,都需要我们在pom文件中导
2020-10-31 16:54:07阅读全文
普通本科毕业校招进阿里云就拿23k*13?
秋招结束,有人欢喜有人愁,拿到心仪的offer固然心喜,手里的offer不尽如人意也先别气馁,offer不如人也许并不是你技术比谁差,而是你的学习方向跟面试过程出了一些小小的问题。
2020-10-31 13:28:28阅读全文
花十分钟时间来武装一下你的代码库吧!
当我们的代码库由很多人维护时,经常会出现代码风格不一致或者代码质量不过关,提交信息紊乱的情况,当然啦,即使是一个人的代码库,有的时候,自己写代码时不太注意细节,也会出现风格不一致的情况。
2020-10-31 12:06:33阅读全文
使用Go进行io_uring的动手实践
在Linux中,系统调用(syscalls)是一切的核心。 它们是应用程序与内核交互的主要接口。 因此,至关重要的是它们要快。 尤其在后Spectre / Meltdown后世界中,这一点尤为重要。
2020-10-31 10:38:28阅读全文
算法数据结构——这张图说尽动态规划算法
算法中有个专题,动态规划,它十分的重要,大厂面试中或多或少有所涉及,来网易之前,刷了部分dp,这次正好再次梳理一遍,希望对你们有一点点帮助。
2020-10-31 02:15:21阅读全文
Linux常用命令集合(后端专用操作手册)
Linux 的命令的主要分为对文件基本信息的操作、对文件与目录的操作命令、对用户和用户组的操作的命令、对磁盘管理的操作命令、以及 vim、yum、apt.在这里 ,我们只是介绍一些简单的 linux 的操作,比如说对文件与目录的操作,对文件基本信息的操作,以及 vim 指令,这些操作足以满足一个
2020-10-31 02:13:47阅读全文
linux下定位多线程内存越界问题实践总结
最近定位了在一个多线程服务器程序(OceanBase MergeServer)中,一个线程非法篡改另一个线程的内存而导致程序core掉的问题。定位这个问题历经曲折,尝试了各种内存调试的办法。往往感觉就要柳暗花明了,却发现又进入了另一个死胡同。最后,使用强大的mprotect+backtrace+li
2020-10-30 22:35:22阅读全文
Linux 制作系统镜像
在 RHEL 7.3 上面搭建好了 Apache Web 服务,现在想把 RHEL 8.1 系统镜像上传到 Apache Web 根目录,但由于 RHEL 8.1 系统镜像的大小为 7.31 GB,已经超过 4 GB ,通过 rz 无法上传。解决方法是把 RHEL 8.1 系统镜像挂载到 RHEL
2020-10-30 11:45:57阅读全文
听说你只知内存,而不知缓存?CPU表示很伤心!
一般我们的开发同学们都知道自己机器的CPU是几核、内存是多大。但是对于CPU内部对程序性能影响较大的缓存却是一知半解。有些开发同学都是计算机的缓存有L1、L2、L3,但是再详细一点的问题,可能就很少有同学能答的完整了。如果下面这几个问题你能脱口而出,请跳过本节。例如:
2020-10-30 11:36:16阅读全文
SonarQube快速集成钉钉群机器人
https://github.com/viodo/sonar-dingtalk-plugin觉得有用的别忘了点个star哦 _
2020-10-30 00:51:36阅读全文
大牛的Linux编程-线程池的设计与实现(详细完整版)
假设服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。提升服务器性能的一个重要方法就是采用“池”的思路,即对一组资源在服务器启动之初就被完全创建好并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户端请求时,
2020-10-29 21:52:33阅读全文