java技术圈 为您找到相关结果 134

[译] 如何杀死一个进程和它的所有子进程

文地址:Killing a process and all of its descendants原文作者:igor_sarcevic译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/killing-a-process-and-all-of-its-descendants.md译者:江五渣校对者:TokenJan,portandbridge如何杀死一个进程和它的所有子进程在类 Unix 系统中杀死进程比预期中更棘手。上周我在调试一个在 Semaphore 中终止作业的问题。更具体地说,这是一个有关于在作业中终止正在运行的进程的问题。以下是我从中学到的要点:类 Unix 操作系统有着复杂的进程间关系:父子...阅读全文

聊聊 TCP 中的 KeepAlive 机制

服务端的系统设置中经常会和底层协议打交道,我们有必要重温一下曾经那些“听过”却不熟悉的名词。今天聊的话题是 KeepAlive,在实际应用中又是怎么使用的?为什么有Keepalive?大家都做过电梯吧,假设电梯来了你先进去,你朋友还没进来,过一段时间电梯门就会自动关闭,你应该没遇到过哪个电梯会一直等你朋友来了才关门的。如果真是那样,那别的楼层的小姐姐们会炸了~我们举个编程中的例子来解释下,我编写了一个服务端程序S和一个客户端程序C,客户端向服务端发送一个消息:客户端发送消息服务端收到消息后一看,瞧给你牛*的,然后没理客户端,傻狗客户端一直在等待,但是不知道是不是服务器挂掉了?这时候TCP协议提出一个办法,当客户端端等待超过一定时间后自动给服务端发送一个空的报文,如果对方回复了这个报文证明连接...阅读全文

博文 2020-11-04 11:28:37 知乎

Linux中Buffer和Cache的区别 - D_R_Y

1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。 Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。 2. Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设...阅读全文

博文 2020-06-21 04:42:58 博客园

当执行kill -9 PID时系统发生了什么

我们时常遇到这样的需求:要杀死一个正在运行运行的进程。这时候可以在终端输入 1 kill -9 (其中9的意思是SIGKILL,完整的linux信号请看这里)之后你再用ps查看进程的时候,会发现那个进程已经被杀掉了。 本文将说明在LINUX系统下,用户在终端输入kill -9 之后,整个系统到底发生了什么,我们将深入到内核代码。一开始我在想这个问题的时候遇到了一些问题,比如进程是怎么知道自己收到信号的?在执行进程工作代码的同时还要不断轮询有没有新到的信号吗?代价也太大了吧?那是不是基于什么异步通知的方案呢?在说明LINUX是怎么做的之前,先解释一点基础的概念。 什么是信号(SIGNAL) 我自己的理解:信号之于进程,就好比中断之于CPU,是一种信息传递的方式。官方的解释...阅读全文

Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势?

登录一下,更多精彩内容等你发现贡献精彩回答,参与评论互动登录查看全部 25 个回答学徒programmer70 人赞同了该回答在探讨这个问题之前,关于网络中的Bufferbloat问题需要了解,详细信息在这里(https://www.bufferbloat.net/projects/bloat/wiki/Introduction/),@李博杰 的回答也说得比较清楚了。在这里做一些补充吧。流量控制分为两部分:* 接收方的流量控制(即滑动窗口)-- 由接收方告知,只关注自身缓存情况,不关注网络,这里不讨论。* 发送方的流量控制(即拥塞控制)现在广泛使用的CUBIC/(new)Reno都是基于丢包的,在算法上重点输出拥塞窗口(cwnd);而BBR输出cwnd和pacing_rate,且pacing...阅读全文

博文 2020-09-06 14:37:35 知乎

UEFI+GPT与BIOS+MBR各自有什么优缺点?

UEFI+GPT最好用64位操作系统。 似乎人人都可以张嘴就说“我懂电脑”,但是总有一些看起来完全不懂但实际上非常基础的东西让“懂”与“不懂”清晰地划清界限。比如UEFI+GPT就是其中之一,那些之前认为自己已经精通电脑的人,遇到这个东西,忽然发现自己连系统都不会装了。 尽管UEFI以及GPT从诞生迄今已经十余年了,但是由于它们的不普及性,导致对于绝大多数人来讲它们是完全陌生的 ,甚至根本就不知道还有这种东西。 但是由于Windows8操作系统的面世,预装Windows8的电脑开始统一采用UEFI+GPT,很多人被迫接触到,感觉就像突然从天上掉下来的东西一样,无所适从,一筹莫展—— “这到底是个什么东西呢?” 一旦出现系统问题,唯一能做的解决办法除了品牌机自带的系统还原,最大能力不过就是把U...阅读全文

Linux利用iptables实现真

对于经常要浏览油管等被墙网站的人而言,利用代理来实现fq是非常有必要的。现在fq的方法中,最为主流的应该要数ssr了,因此本教程都是基于ssr的socks5代理而言的。 在windows中,ssr客户端设置的系统代理,大部分应用还是能够起到作用的,但是也有不少却不走代理。这里有个不错的解决方案就是通过sstap来实现网卡层的代理,这样一来,所有的流量都会通过代理流通转发出去了。 然而,windows并不是我们的全部,偶尔我也会用用linux,这样的话,对于linux有没有较好的全局代理方案呢?这就是本文将要介绍的。 下面我将简单介绍了linux常见的设置代理方法,以及全局代理的方法。 常见代理 最为常见的是 http_proxy=http://localhost:1080 https_pro...阅读全文

博文 2021-10-09 06:25:48 全局代理

linux awk命令统计排名单词出现次数

命令太多,记不住,组合起来用一把…..示例文件:1234567891011[root@lovedan test]# cat a.txthellogoodworldhellohellogooddandangoodhelloworld 场景/分析: 统计a.txt出现次数前3名的单词 出现次数用awk统计 排名用sort命令排序 取文件前N行用head命令 awk命令awk是以文件的一行为处理单位的,awk每接收文件的一行,然后执行相应的命令处理文本awk玩法请参考文档12345[root@lovedan test]# awk '{sum[$1]+=1} END {for(k in sum) print k ":" sum[k]}' a.txthello:4dandan:1good:3world...阅读全文

博文 2020-07-31 11:09:29 小仙丹

linux删除文件后没有释放空间_冰刀(skate)

author:skatetime:2009/12/09 linux删除文件后没有释放空间 今天发现一台服务器的home空间满了,于是要清空无用的文件,当我删除文件后,发现可用空间没有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [root@ticketb ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 981M 203M 729M 22% /none 16G 0 16G 0% /dev/shm/dev/sda9 2.9G 37M 2.7G 2% /tmp/dev/sda7 4.9G 1.9G 2.7G 42% /usr/dev/sda8 2.9G 145M 2.6G 6% /var/dev/map...阅读全文

博文 2021-01-28 12:07:43 CSDN博客_linux 删除文件没有释放空间

~/.profile和/etc/profile的区别_u011495642的博客

luotuo44的专栏 05-12 5343 Linux安装软件时,/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途 之前安装Linux的一些软件时,总要修改Linux的配置文件。当时也是一知半解。而且,网上有些安装教程,会说,修改配置文件后要重启Linux。但事实上是不需要重启的。 Linux安装时可能要修改的配置文件:/etc/profile、/etc/bashrc(ubuntu没有这个文件,对应地,其有/etc/bash.bashrc文件。我用的是ubuntu系统,所以下面将一律使用... 陈光泉的博客 07-13 324 Centos6 系统配置文件 /etc/profile, ~/.bash_profile 等区别 各环境变...阅读全文

博文 2020-07-14 14:00:09 CSDN博客_.profile

Lenky个人站点 » Socket选项系列之TCP_CORK

从上一节的内容可以看到,选项TCP_NODELAY是禁用Nagle算法,即数据包立即发送出去,而选项TCP_CORK与此相反,可以认为它是Nagle算法的进一步增强,即阻塞数据包发送,具体点说就是:TCP_CORK选项的功能类似于在发送数据管道出口处插入一个“塞子”,使得发送数据全部被阻塞,直到取消TCP_CORK选项(即拔去塞子)或被阻塞数据长度已超过MSS才将其发送出去。举个对比示例,比如收到接收端的ACK确认后,Nagle算法可以让当前待发送数据包发送出去,即便它的当前长度仍然不够一个MSS,但选项TCP_CORK则会要求继续等待,这在前面的tcp_nagle_check()函数分析时已提到这一点,即如果包数据长度小于当前MSS &&((加塞 || …)|| …),那么缓存数据而不立即...阅读全文

博文 2021-11-05 07:20:05 www.lenky.info

xinit启动X Window System过程_xb_0916的专栏

此文完全来自http://www.52z.com/info/html/26120.html,我没有进行任何修改!现对作者表示深切谢意! 启动X主要有两种方法:一是Display Manager,如XDM、GDM、KDM,此种方法通过图形界面登录;另一种是通过xinit,此种方法适用于字符界面登录。我们常用于登录X的startx命令也是通过传递参数给xinit来启动X的,也就是说,最终启动X的是xinit。startx只是一个bash脚本。下面主要分析xinit一下初始化X的过程: 首先来看一看xinit命令的用法: xinit [[client] options ] [-- [server] [display] options] 可以看出,xinit初始化X是通过两个层面来进行的,即X cl...阅读全文

博文 2020-07-13 02:30:09 CSDN博客_xinit xinitx

Linux 下各个目录的作用及内容 - JackyTang

在 Linux 下,我们看到的是文件夹(目录): 在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱。Linux 面世不久后,对文件目录进行了标准化,于1994年对根文件目录做了统一的规范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系统层次结构标准。FHS 标准规定了 Linux 根目录各文件夹的名称及作用,统一了Linux界命名混乱的局面。 无论何种版本的 Linux 发行版,桌面、应用是 Linux 的外衣,文件组织、目录结构才是Linux的内心。 FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式...阅读全文

博文 2020-07-13 15:26:10 博客园

free命令中的buffer和cached的比较

free命令中的buffer和cached的比较最近在搞监控,突然看到我系统的内存要用完了,赶紧登录服务器看看,~]# dstat -m 16G内存就剩1G了。怎么回事,然后用free命令看了下~]# free -m 原来是cached占用较多,真正用的只有6773M,空闲是9307M。但是还是对cached占用这么多比较担心,所以就查了下,下面文章转载至http://blog.csdn.net/beacherlu/article/details/45871489经常遇到一些刚接触Linux的新手会问内存占用怎么那么多? 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是linux内存管理的一个优秀特性,在这方面,区别于Windows的内...阅读全文

用户进程缓冲区和内核缓冲区

用户进程缓冲区和内核缓冲区 发表于 2017-02-01 | 分类于 操作系统 | 常常听到有程序员会跟你讨论:“我们在读写文件的时候,系统是有缓存的”。但实际上有一部分人把用户进程缓冲区和系统空间的缓冲区的概念混淆了,包括这两种缓冲区的用法和所要解决的问题,还有其它类似的概念。这篇博客就来区分一下不同的缓冲区概念。 这篇博客指针对类unix平台,windows的我并不熟悉,但我觉得应该差不多。 用户进程与操作系统的关系首先我用一张图来解释“用户进程和操作系统的关系” 这是一个计算机系统运行时的简化模型,我们把所有运行在操作系统上的进程成为用户进程,它们都运行在用户空间(可以看到用户空间有很多进程)。把操作系统运行的空间成为系统空间。 为什么将进程分为用户进程和系统进程,首先你一定听说过内核...阅读全文

博文 2020-06-10 07:28:55 Pulpcode

linux下core dump【总结】 - Rabbit_Dale

1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是我在自己的linux系统上面写个非法程序测试,并没有产生core问题?这又是怎么回事呢?今天在ngnix的源码时候,发现可以在程序中设置core dump,又是怎么回事呢?在公司发现生成的core文件都带有进程名称、进程ID、和时间,这又是怎么做到的呢?今天带着这些疑问来说说core文件是如何生成,如何配...阅读全文

博文 2020-12-03 07:16:21 博客园

linux shell 用sed命令在文本的行尾或行首添加字符 - aaronwxb

昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“TAIL”,命令如下: sed 's/$/&TAIL/g' test.file 运行结果如下图: 几点说明: 1."^"代表行首,"$"代表行尾 2.'s/$/&TAIL/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了 例: 3.如果想导出文件,在命令末尾加"> outfile_nam...阅读全文

博文 2021-06-25 10:44:27 博客园

TCP 异常关闭研究分析 - 云+社区

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer作者:谢代斌研究测试TCP断开和异常的各种情况,以便于分析网络应用(比如tconnd)断网的原因和场景,帮组分析和定位连接异常掉线的问题,并提供给TCP相关的开发测试人员作为参考。各个游戏接入都存在一定的掉线问题,而且有的游戏项目的掉线比例还比较高,现在互娱自研游戏的网络接入基本上都用的是tconnd和ProtocalHandler组件(该组件请参考附件的《TSF4G_ProtocalHandler开发指导手册》),因此参与其掉线原因分析和研究。在参与A项目的掉线问题研究分析过程中,tconnd增加了玩家每个连接的流水日志和ProtocalHandler增加了每个连接的Qos上报日志,...阅读全文

博文 2021-11-05 09:40:44 腾讯云

Java NIO中,关于DirectBuffer,HeapBuffer的疑问?

1. DirectBuffer 属于堆外存,那应该还是属于用户内存,而不是内核内存?来自 ByteBuffer (Java Platform SE 8 )The contents of direct buffers may reside outside of the normal garbage-collected heap所以是否真的是堆外存并不是强制的,是依赖jvm实现的。回归正题:用户内存还是内核内存?首先,我们知道,每个进程是有独立的地址空间的,也就是说对于一个java进程来说,他只能看到自己的内存,他只能读写自己的内存。而内核其实是有上帝视角的,如早期的linux,内核是能看到并读写所有物理内存的(关于这一点,有兴趣的可以参看我的简写版linux的实现:https://github...阅读全文

博文 2021-08-28 11:12:10 知乎

深入剖析Linux IO原理和几种零拷贝机制的实现

前言零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现零拷贝用到的最主要技术是 DMA 数据传输技术和内存区域映射技术。零拷贝机制可以减少数据在内核缓冲区和用户进程缓冲区之间反复的 I/O 拷贝操作。零拷贝机制可以减少用户进程地址空间和内核地址空间之间因为上下文切换而带来的 CPU 开销。正文1. 物理内存和虚拟内存由于操作系统的进程与进程之间是共享 CPU 和内存资源的,因此需要一套完善的内存管理机制防止进程之间内存泄漏的问题。为了更...阅读全文

博文 2021-08-17 04:10:56 知乎

【指导】sed - GNU vs BSD_I__Love__China的博客

GNU sed 4.5 版参考文档全文翻译 各命令和随带20个示例详细解析(一) HZ_Samuel博客 05-03 385 文档记录了一个版本4.5的流编辑器——GNU sed。 版权所有© 1998—2018自由软件基金会。 根据GNU免费文档许可证、自由软件基金会发布1.3及其后续版本,本文档被允许复制、分发和、或修改;没有不变的部分,没有封面文本,也没有封底文本。许可证副本包含在标题为“GNU免费文档许可证”的部分中。 sed (GNU) C/C++,Win/Linux使用与开发技巧 11-15 1294 simplified "info sed" linux mac下使用sed a\追加文本 热门推荐 cbbbc 01-07 1万+ 由于mac系统是原生于bsd系,sed命令和gn...阅读全文

博文 2022-04-02 02:43:51 CSDN博客_gnu和bsd

Linux网络编程 | 并发模式:半同步/半异步模式、领导者/追随者模式

文章目录 同步与异步 半同步/半异步模式 变体:半同步/半反应堆模式 改进:更高效的半同步/半异步模式 领导者/追随者模式 组件 :句柄集、线程集、事件处理器 并发模式是指I/O处理单元和多个逻辑单元之间协调完成任务的方法。服务器主要有两种并发编程模式:半同步/半异步模式(half-sync/half-async)模式和领导者/追随者(Leader/Followers)模式 同步与异步 首先在这里要指出,这里的"同步"和“异步”与I/O模型中的”同步I/O“与“异步I/O”是两个完全不同的概念,不能将其混淆。 在I/O模型中,”同步I/O“和”异步I/O“主要的区别就是内核向应用程序通知的是哪种I/O事件(就绪事件/完成事件),以及由谁来完成I/O的读写操作(应用程序/内核)。 同步I/O:...阅读全文

博文 2021-08-16 07:49:23 码农家园

Linux系统中切换用户身份su与sudo的用法与实例_斑马Linux的技术博客_51CTO博客

日常操作中为了避免一些误操作,更加安全的管理系统,通常使用的用户身份都为普通用户,而非root。当需要执行一些管理员命令操作时,再切换成root用户身份去执行。普通用户切换到root用户的方式有:su和sudo。1,su -(su为switch user,即切换用户的简写)格式:su -l USERNAME(-l为login,即登陆的简写)-l可以将l省略掉,所以此命令常写为su - USERNAME如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或是直接 su - 实例1:普通用户user1知道root账户登录密码,要求用户user1在不注销登录的前提下查看/etc/shadow文件。如下图,试图查看文件/etc/shadow时,...阅读全文

博文 2022-04-07 06:59:20 blog.51cto.com

shell脚本输出中文乱码

Scala入门到精通——第三十节 Scala脚本编程与结束语 摘要: 本节主要内容 REPL命令行高级使用 使用Scala进行Linux脚本编程 结束语 1. REPL命令行高级使用 在使用REPL命令行时,有时候我们需要粘贴的代码比较大,而普通的粘贴可能会些一些问题,比如中文粘贴会出现乱码、多行代码粘贴时会出错,此时需要用到REPL的高… 猫耳_ 5年前 364 点赞 评论 Scala 命令行 Linu...阅读全文

博文 2023-09-13 16:31:23 掘金

Linux系统top命令中的iowait究竟是什么意思?

最近在做连续数据流的缓冲系统,C语言代码实现后,粗略测试了下,功能上应该没有问题。那么,接下来就该测试性能了。输入 top 命令,的确可以看到一系列 cpu 使用率,其中一个值得注意的子项就是 io 使用率了,如下图: 上图中 io 前面的数字是什么意思呢?是指 CPU 有 63% 的时间花费在 io 上了吗?在 Linux 中输入 man 命令查看相关手册,发现 io(wait) 被解释为“等待 I/O 完成的时间”。 如果按照手册对 iowait 字面上的解释,是很容易陷入误区的。因为就上例而言,似乎 CPU 有 63% 的时间消耗在等待 I/O 操作完成,导致 CPU 的性能白白浪费这么多。其实不是的,Linux 是一个成熟的操作系统,它才不会让 CPU 宝贵的性能白白浪费在耗时的 I...阅读全文

博文 2022-11-12 03:24:40 刘冲的博客

Linux下为什么端口开着但是进程却不存在? – hao32的个人日志

一次偶然事件,我检查某台服务器系统时发现一个从来没见过的端口处于监听(LISTEN)状态,于是开始仔细检查系统。 [root@db097 ~]# netstat -lnpt | grep 7979 tcp 0 0 0.0.0.0:7979 0.0.0.0:* LISTEN - 进程里什么都没有,试了多种办法试着去找一下,都是一样的结果。 [root@db097 ~]# lsof -i:7979 google了半天,最后一段话提示了我: I realized it’s an port opened by kernel, that’s why it won’t show up with program name. For the port like this, it may relate to ...阅读全文

博文 2023-06-28 03:27:32 www.hao32.com

Mongodb 数据库安装之单机版_51CTO博客_mongodb数据库安装

一、安装前准备工作 1、关闭SELINUX、防火墙 [root@localhost ~]# setenforce 0 [root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config [root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld 2、设置时间同步 [root@localhost ~]# yum -y install ntp [root@localhost ~]# \cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [ro...阅读全文

博文 2023-01-04 02:59:42 blog.51cto.com

Linux 快速删除已输入的命令_DreamLee0625的博客

linux 命令删除命令,Linux 命令之删除命令 weixin_33019827的博客 04-28 2778 在Linux下删除文件用rm命令,具体用法如下:rm [选项] 文件选项说明:-f -force 忽略不存在的文件,强制删除,无任何提示-i --interactive 进行交互式地删除-r | -R --recursive 递归式地删除列出的目录下的所有目录和文件-v --verbose 详细显示进行的步骤命令实例:1、常规删除a.txt文件... linux删除用户名命令,linux删除用户命令 weixin_36435442的博客 04-28 7651 Linux下删除以后的时候我们需要通过相关的命令来实现。下面由学习啦小编为大家整理linux删除用户命令的相关知识,希望对...阅读全文

博文 2023-02-14 08:32:07 CSDN博客_linux删除已输入的命令

Linux中ARP学习和老化机制

本文分享自天翼云开发者社区《Linux中ARP学习和老化机制》 作者:云云生息ARP学习和老化机制在Linux网络通信中起着至关重要的作用。ARP(Address Resolution Protocol)地址解析协议是将IP地址解析为MAC地址的一种机制。本文将详细介绍Linux中ARP学习和老化的概念、工作原理以及其重要性。一、ARP学习在一个局域网(LAN)中,设备之间通信需要知道目标设备的MAC地址。但是,在IP网络中,设备之间通常只知道目标设备的IP地址。这时候ARP就发挥作用了。ARP会通过广播在局域网上发送一个ARP请求(ARP Request),询问某个IP地址对应的MAC地址。其他设备收到这个请求后,如果其中有设备的IP地址与之匹配,就会回复一个ARP响应(ARP Reply...阅读全文

Linux高性能IO网络模型对比分析:Reactor vs Proactor - 腾讯云开发者社区

1、前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力。本文旨在为大家提供有用的高性能网络编程的I/O模型概览以及网络服务进程模型的比较,以揭开设计和实现高性能网络架构的神秘面纱。 2、关于作者 陈彩华(caison):主要从事服务端开发、需求分析、系统设计、优化重构工作,主要开发语言是 Java。 3、线程模型 上篇《高性能网络编程(五):一文读懂高性能网络编程中的I/O模型》介绍完服务器如何基于 I/O 模型管理连接,获取输入数据,下面将介绍基于进程/线程模型,服务器如何处理请求。 值得说明的是,具体选择线程还是进程,更多是与平台及编程语言相关。 例如 C 语言使用线程和进程都可以(例如 Nginx 使用进程,Memcached 使用线程),Java...阅读全文

博文 2023-02-02 03:59:47 腾讯云

docker对cpu使用及在kubernetes中的应用

docker对CPU的使用 docker对于CPU的可配置的主要几个参数如下: --cpu-shares CPU shares (relative weight) --cpu-period Limit CPU CFS (Completely Fair Scheduler) period --cpu-quota Limit CPU CFS (Completely Fair Scheduler) quota --cpuset-cpus CPUs in which to allow execution (0-3, 0,1) 这些参数主要是通过配置在容器对应cgroup中,由cgroup进行实际的CPU管控。其对应的路径可以从cgroup中查看到 cpuset-cpus [root@node-156...阅读全文

博文 2023-09-20 17:09:47 xinkun的博客 | Xinkun Blog

HPC中常见的调度器介绍

本文分享自天翼云开发者社区《HPC中常见的调度器介绍》 作者:土豆炒肉丝在高性能计算(HPC)环境中,调度器是负责管理和分配计算资源(如计算节点、处理器核心、内存等)给待执行任务的重要组件。不同的HPC系统可能使用不同的调度器,根据系统架构和用户需求的不同,调度器有各自的特点和区别。以下是一些常见的HPC调度器及其区别:1.SLURM(Simple Linux Utility for Resource Management):SLURM是一个开源的HPC调度器,广泛应用于高校、超算中心等HPC集群。它提供了丰富的功能,包括作业提交、资源分配、优先级管理、任务监控等。SLURM支持多种作业调度策略,如先进先出(FIFO)、公平共享(Fairshare)、优先级调度等。它还支持作业数组,可以一次...阅读全文

通过Consul-Template实现动态配置服务_51CTO博客_consul

Consul-Template简介Consul-Template是基于Consul的自动替换配置文件的应用。在Consul-Template没出现之前,大家构建服务发现系统大多采用的是Zookeeper、Etcd+Confd这样类似的系统。Consul官方推出了自己的模板系统Consul-Template后,动态的配置系统可以分化为Etcd+Confd和Consul+Consul-Template两大阵营。Consul-Template的定位和Confd差不多,Confd的后端可以是Etcd或者Consul。Consul-Template提供了一个便捷的方式从Consul中获取存储的值,Consul-Template守护进程会查询Consul实例来更新系统上指定的任何模板。当更新完成后,模板...阅读全文

博文 2023-09-18 11:36:50 template

linux查看进程启动时间

Linux系统下查看进程启动时间和运行时间的命令 ps -o lstart -p PID #根据PID来查询 ps -o lstart,etime -p PID #根据PID来查询,打印出启动时间和已经运行的时间 ps -eO lstart | grep PROCESS #根据进程名字查询 提示: 1, 大写的O表示preloaded,小写的o表示user-defined,e表示all processes 2, 如果查出来的时间是1-16:15:58, 则表示该运程运行了1天16小时15分钟 3, etime表示elapsed time, 即程序已经运行的时...阅读全文

博文 2023-10-11 10:28:54 CSDN博客

关于Linux中的mmap和page cache的问题?

功能描述:mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。基 于文件的映射,在mmap和munmap执行过程的任何时刻,被映射文件的st_atime可能被更新。如果st_atime字段在前述的情况下没有得到 更新,首次对映射区的第一个页索引时会更新该字段的值。用PROT_WRITE 和 MAP_SHARED标志建立起来的文件映射,其st_ctime和 st_mtime在对映射区写入之后,但在msync()通过MS_SYNC 和 MS_ASYNC两个标志调用之前会被更新。用法: void *mmap(void *start, size_t length,...阅读全文

Mongodb 设置自动重启服务 (CentOS Systemctl)_mongodb自动重启

docker启动mongodb一直重启问题 qq_28723681的博客 05-07 5490 docker启动mongodb一直重启问题 1. mongo 容器 Restarting (132) 2 seconds ago 近期接手一个后端项目,发现使用docker 创建mongodb的容器时,总是显示一直重启,显示Restarting (132) 2 seconds ago , 然而在我自己的window10电脑上却无法复现,或者换一台机器也不会出现类似的问题。 查了下万能的google 终于找到了问题所在。 原文链接:https://stackoverflow.com/questions/609 定时扫描脚本监视Mongodb服务 关闭时执行脚本自动重启Mongodb服务 Hou_re...阅读全文

博文 2023-11-21 21:54:14 CSDN博客

Linux系统性能监控工具:tsar 安装、配置、以及使用 - 宇宙神奇

介绍tsar 是淘宝自己开发的一个监控工具,可用于收集和汇总系统信息,例如CPU,负载,IO和应用程序信息,例如nginx,HAProxy,Squid等。结果可以存储在本地磁盘或发送到Nagios。tsar 可以通过自己开发模块轻松扩展,这使得它成为一个强大的监控工具。 总体架构Tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。框架程序源代码主要在src目录,而模块源代码主要在modules目录中。框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar –cron来定时采集信息,并且记录到原始日志文...阅读全文

博文 2023-09-13 14:48:05 博客园

虚拟化技术 - CPU虚拟化

本文分享自天翼云开发者社区《虚拟化技术 - CPU虚拟化》,作者:谢****悦物理机器是由CPU,内存和I/O设备等一组资源构成的实体。虚拟机也一样,由虚拟CPU,虚拟内存和虚拟I/O设备等组成。VMM(VM Monitor)按照与传统OS并发执行用户进程的相似方式,仲裁对所有共享资源的访问。本文将分别讨论CPU虚拟化、内存虚拟化和I/O虚拟化技术的原理和实现。在虚拟化的平台上,虚拟机(guest VM)所使用的多个虚拟CPU(以下称vCPU)可能是共享同一个物理CPU(以下称pCPU)的。VMM负责vCPU的调度,当一个vCPU被调度到获得pCPU的使用权后,基于该vCPU运行的guest OS又可以调度OS中的各个线程/进程了。也就是说,guest OS中的各个线程/进程分时复用了vCP...阅读全文

博文 2023-05-19 09:35:52 Tianyiyun

linux系统中统计每一行的字符数及总字符数 - 小鲨鱼2018

小鲨鱼2018 博客园 首页 新随笔 联系 订阅 管理 linux系统中统计每一行的字符数及总字符数 1、awk命令 [root@PC3 test]# cat a.txt dfs dsafd d fgasdf safd ge [root@PC3 test]# awk -F "" '{print NF}' a.txt 3 5 1 6 4 2 2、 [root@PC3 test]# cat a.txt dfs dsafd d fgasdfd safd ge [root@PC3 test]# a=`awk 'END{print NR}' a.txt ` [root@PC3 test]# echo $a 6 [root@PC3 test]# for i in `seq $a`;do sed -n "...阅读全文

博文 2023-10-07 16:22:30 博客园

Linux 系统 /var/log/journal/ 垃圾日志清理

CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。 该日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经历过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速。 本文转自米扑博客:Linux 系统 /var/log/journal/ 垃圾日志清理 默认情况下并不会持久化保存日志,只会保留一个月的日志。另外,一些rsyslog无法收集的日志也会被journal记录到。 rsyslog作为传统的系统日志服务,把所有收集到的日志都记录到/var/l...阅读全文

博文 2023-10-29 10:24:54 CSDN博客

(网盘分享)SpringBoot2 仿B站高性能前端+后端项目

​download: SpringBoot2 仿B站高性能前端+后端项目高性能前端+后端项目开发全流程,掌握视频业务核心功能与技术如今短视频成为了风口中的风口,但市场上极度缺乏视频业务开发的相关技术人才。本课程基于SpringCloud微服务架构+Springboot+JDK+Maven+VUE等技术,实现B站核心功能(视频流、弹幕流)+百万量级的高性能优化,让你在实战中全面提升前端加后端技术水平,掌握架构设计思维及丰富解决方案,从此拥有高性能+视频业务项目经验的背书!适合人群1-3年工作间经验的后端开发人员寻找机会想从简历中脱颖而出的在职IT从业者想增加项目经历的前后端开发人员技术储备Java基础知识Springboot相关概念数据库,sql语句基础知识linux、mac、windows系...阅读全文

linux中gz文件怎么解压,Linux解压gz文件的命令使用教程及详解_陳寶平的博客

今天小编给带来一篇linux解压方面的资料 Linux解压gz文件的命令有:gunzip命令、gzip命令、tar命令。下面本篇文章就来带大家了解一下 gz文件是一种压缩文件,以.gz或者.tar.gz(.tgz)为扩展名,在Linux、UNIX和OSX下常见,Linux和OSX都可以直接解压使用这种压缩文件。在Windows下常用压缩软件WinRAR打开gz文件,它相当于常见的RAR和ZIP格式。 .gz文件解压 如果是以.gz扩展名结尾的gz文件,可以使用gunzip命令、gzip命令来解压。 gunzip命令 作用是解压文件,使用权限是所有用户。例: gunzip FileName.gz gzip命令 gzip命令是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又...阅读全文

博文 2023-11-08 17:19:05 CSDN博客

[完结9章]操作系统入门与实践-参透技术本质

![1.png](http://static.itsharecircle.com/240109/fe35e6a4ca77c370e045d1e095931942.png) 在现如今的信息化时代,相信各位读者对于“操作系统”这四个字并不陌生。例如我们常常使用的Windows、安卓、IOS、MacOS以及Linux等,都属于操作系统。操作系统,是现如今信息化时代中不可或缺的一种软件。 Linux操作系统是一种开源的、基于Unix的操作系统。它最初由芬兰计算机科学家Linus Torvalds在1991年开发,并得到了全球范围内广泛的应用和支持。 Linux操作系统具有稳定性、安全性、可靠性和灵活性等特点,广泛应用于服务器领域,也被许多个人用户选择作为他们的主要操作系统。Linux提供了丰富的命令...阅读全文

博文 2024-01-09 14:40:52 giadnbhaytgw

linux 创建 swap分区

linux 创建 swap分区 swap是什么?Swap:交换分区类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常. 复制链...阅读全文

Linux iptables 删除 chain

接触了一些东西,添加了几个 chain,搞得乌烟瘴气,网上查资料都不是那么的直接或者说没有说明白,而又并不是太想研究,因为这东西,到底还是有点麻烦的。解决方案#刷新 iptables -t mangle -F #删 iptables -t mangle -X [your chain name] #刷新 iptables -t mangle -F #看看删了没有 iptables -t mangle -LPS:按顺序,顺序不可乱。前后需要被 -F包裹,感谢一位朋友的耐心指导(帮忙)...阅读全文

博文 2023-12-12 14:54:44 伪斜杠青年

[完结14章]鸿蒙系统实战短视频App 从0到1掌握HarmonyOS

网盘地址:https://pan.baidu.com/s/1KqyO8--FE6LSDoNcVfwLbQ 提取码:p64r 腾讯微云下载地址:https://share.weiyun.com/aXaiIMC3 密码:q5aaj7 HarmonyOS作为全球第三大移动应用生态,已有诸多公司将鸿蒙开发列入招聘优先选项,现在入局正当时。但鸿蒙系统涉及颇广,入门容易,进阶难。本课程特邀鸿蒙资深技术达人带你系统学习HarmonyOS 组件和API,实战HarmonyOS 9大主题核心技术,具备0到1独立实现完整HarmonyOS App实战能力,助力移动端开发者拓展职业新边界。 针对HarmonyOS开发按不同的角度划分,可以有不同的分发: 1、从宏观大类上分为三类:1)通用开发(可安装应用app,兼...阅读全文

博文 2023-12-01 15:05:28 kaidnxhd2023

基于C++从0到1手写Linux高性能网络编程框架-15章

参考资料地址1:https://pan.baidu.com/s/1i8FuLluEUV3BJFphjKWvhQ 提取码:zvet 参考资料地址2:https://pan.baidu.com/s/1MgD4BdeD6V6HfXkoMAZ5Hw 提取码:l5t4 网络编程概述 管道(父子进程)、消息队列(内核经营消息队列)、共享内存(创建一个空间)、信号(通过pid号通信)、信号量(对临界资源,共享内存做P、V控制) 。 特点:依赖于Linux内核 A B两个通信基于内核。缺陷:无法多机通信 (不适用与两台不同的电脑) TCP和UDP对比: TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前 不需 要建立连接 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无...阅读全文

博文 2023-12-06 15:18:14 giadnbhaytgw

iostat的深入理解 - yuyue2014

问题背景 iostat -xdm 1 通常用来查看机器磁盘IO的性能。 我们一般会有个经验值,比如,ioutil要小于80%, svctm要小于2ms。 前几天碰到一个奇怪的现象:有一台SSD机器,磁盘的iops在1万多,吞吐量在100多M,看来压力并不大,但是ioutil一直在90%以上。SSD的磁盘怎么会只能承受这么点压力? 下面是当时tsar的数据: 针对这个问题的结论 ioutil是繁忙度的一个度量(非空闲时间)。对于后面有多块磁盘支撑的虚拟设备意义不大。所以对于SSD,并不能说ioutil到了100%了,磁盘就到达最大极限性能了。 官方文档的描述 Percentage of elapsed time during which I/O requests were issued to ...阅读全文

博文 2023-11-01 16:05:51 博客园