自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Linux对用户所使用的内存资源的控制功能测试

Linux资源配置文件为/etc/security/limits.conf,可以限制的资源类型如下:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。<domain>可以是一个用户名或者一个组名,也可以是通配符 *,代表出了root用户之外的所有用户(如果要将限制施加在root用户上,

2021-12-02 19:30:29 1126

原创 Cgroup对进程所占用的CPU与内存资源同时进行限制的测试

测试环境:Ubuntu。处理器数量:1CPU。内存大小:2048MB。以下是测试程序mem_cpu_test.c的代码。将mem_cpu_test.c编译为可以运行的程序mem_cpu_test。运行程序,并用top命令查看mem_cpu_test所占用的系统资源情况,可以看到,mem_cpu_test使用了50%左右的内存资源,也就是1000MB左右,并占用了接近全部的CPU资源。关闭以上的程序后,在Cgroup子系统memory和cpu下分别创建进程组test1和test2。并设置tes

2021-11-23 16:58:21 958

原创 Cgroup对CPU资源的分配功能测试

测试环境:Ubuntu,内存大小:2048MB,处理器数量:1CPU。首先在/sys/fs/cgroup/cpu下创建cpu子控制群组cg1。并在cg1下创建控制群组cg2和cg3。分别在控制群组cg2和cg3下运行程序cpu_test1和cpu_test2。(cpu_test1和cpu_test2均为死循环,在没有限制的情况下会耗尽所有的CPU资源)用top命令查看各个进程的CPU利用率。由于控制群组cg2和cg3下的参数cpu.shares相同,均为1024,因此在单处理器的Linux

2021-11-09 15:08:36 695

原创 Linux下Cgroup的CPU使用率限制机制的测试

创建脚本test.sh该文件如下所示,该shell脚本是一个死循环,默认情况下会使得cpu资源消耗在100%。在/sys/fs/cgroup/cpu下创建新的cpu子控制群组test_cpu。设置组群参数,cpu.cfs_quota_us 和 cpu.cfs_period_us 是控制 cpu 的两个属性,可以通过设置它们的比值来设置某个组群的 cpu 使用率。在此,我们将 cpu 的使用率限制到 50%。测试结果对比:直接运行test.sh,并用top命令查出cpu的使用率为100%。通过

2021-10-31 16:33:12 550

原创 TP-Link提前批星计划面经(一面+二面+三面,已收到座谈会通知)

TP-Link提前批一面 6.18 20min研究生期间的课题是什么?在项目组主要负责哪些工作?如何对后端进行学习的?从哪些地方接触到了后端?系统性地看过Java相关的哪几本书籍?Java中的接口和抽象类有什么区别?多态是什么?是解决什么问题?(老题目了,自己还是不太会答呜呜呜)如何判断链表中是否存在环?有没有空间复杂度为O(1)的方案?Java并发解决的问题有哪些?项目的实现框架是什么?主要解决什么问题?Dubbo是如何解耦合的?项目是基于

2021-06-30 11:38:56 2149 2

原创 盘点进程间的通信方式(总结向)

这天,笔者正在思考着Java中线程的通信方式,室友突然问道:“进程的通信方式有哪些呀?”笔者暗自思索:“原来不光线程,进程之间也是存在许多通信方式的!”赶紧来学习一下好啦!共享存储基于共享数据结构的通信方式:比如共享空间里只能放一个长度为10的数组。仅适用于传递相对少量的数据,通信效率低,属于低级通信。基于共享存储区的通信方式:在内存中画出一张共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,是一种高级通信方式。注意:两个进程对共享空间的访问

2021-06-04 11:34:51 320

原创 美团后台开发暑期实习面经(一面+二面)已offer

2021.05.13 美团一面 1h30minJVMJVM数据区域的划分?介绍一下JVM的垃圾回收新生代和老年代使用的的垃圾回收器和垃圾收集算法分别是怎样的?JAVA基础equals()和==的区别final和finalize()的区别如何能够改变final所修饰的类的一些行为?finally的使用场景?如果try代码块中有个return的命令,执行finally块中的代码与执行return指令的顺序是怎样的?static的使用static修饰的变量存放在哪

2021-06-03 09:34:15 462 3

原创 通过源码理解JDK8的ConcurrentHashMap的get方法、put方法以及扩容过程

这天,笔者独自回忆着最近的面试过程,想起面试官问道:你一般用哪些Java集合呀?我:‍‍????‍HashMap。面试官:那你说说ConcurrentHashMap的扩容过程吧。我:最后面试官语重心长地说:年轻人要多看源码,搞懂底层逻辑,才能越走越远啊!行吧,那今天就来好好看一看ConcurrentHashMap。众所周知,JDK8中ConcurrentHashMap取消了Segment分段锁,采⽤CAS和synchronized来保证并发安全。数据结构跟 HashMap1.8的结构类似,

2021-05-06 16:36:56 739 4

原创 华为2021.04.21校园招聘软件机考题

1.你经营着一家非常忙碌的24小时营业的棋牌室,客人们需要提前一天预约。客人会打电话告诉你,明天到达的时间A和离开的时间L(时间范围[0,24],比如到达时间为0点,离开时间为1点),以及本次预约人数C。你的棋牌室只有M个桌位,如果某个客户的预约电话导致某个时刻无法容纳下客人,则这个预约将被拒绝而作废。假设有N个电话预约,请你设计一个算法,根据预约情况算出明天24个小时每个小时内的客户数量。2.在一个设计良好的分层软件系统内,各服务或模块之间的依赖关系应该是一个树状结构,如:上层模块依赖下层模块,下层模

2021-04-21 22:33:00 2329

原创 new对象时Java虚拟机的工作流程解析

周日的上午,笔者像往常一样盯着电脑发呆,想起昨晚的梦中,一个身着西装的面试官问道:你知道new一个对象时,Java虚拟机是怎么工作的吗?我:没办法,那今天就复习一下好了。类的生命周期分为7个阶段:加载、验证、准备、解析、初始化、使用、卸载。下图是笔者自定义的类。class man { String s; public man(String string){ s = string; }}public class Solution{ publi

2021-04-11 10:49:09 1570 13

原创 常见Java集合底层实现介绍(面试向)

1.常用的List接口的实现类和Set接口的实现类的继承关系图2.ArrayList,LinkedList与VectorLinkedList:对于频繁的插入、删除操作,使用此类效率比ArrayList高;底层使用双向链表存储。ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储ArrayList list = new ArrayList();jdk7:底层创建了长度是10的Object[]数组elementData。如果添加

2021-04-03 15:45:11 392

原创 G1垃圾收集器:从入门到出门(总结向)

Garbage First(简称G1)收集器开创了收集器面向局部收集的设计思路和基于Region的内存布局形式。G1是一款主要面向服务端应用的垃圾收集器。JDK9发布之日,G1宣告取代Parallel Scavenge加Parallel Old组合,成为服务器模式下的默认垃圾收集器。G1的特点如下:并行与并发并行性:G1在回收期间,可以有多个GC线程同时工作,有效利用多核计算能力。此时用户线程Stop The World。并发性:G1拥有与应用程序交替执行的能力,部分工作可以和应用程序同时执行

2021-03-28 17:09:57 242

转载 深入理解数据库行锁与表锁

转载:https://zhuanlan.zhihu.com/p/52678870数据库是怎样隔离事务的呢?这时候就牵连到了数据库锁。当插入数据时,就锁定表,这叫做”锁表”;当更新数据时,就锁定行,这叫做”锁行”。锁在数据网络传输中是一个非常重要的概念,当多个用户对数据库进行操作时,会带来数据不一致的情况,所以,锁主要是在多用户情况下保证数据库数据完整性和一致性。当然,数据库中的锁远不止于上面提到的两种。通常提及数据库锁,想必大家优先想到的,必然是乐观锁,数据库乐观锁可以帮助我们解决很多问题,但数据库中

2021-03-22 10:38:41 389

原创 从源码角度理解ThreadLocal的底层实现

ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。下面博主从源码角

2021-03-21 11:44:32 1013 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除