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

golang实现简易TCP服务以及TCP和UDP协议对比

引言 ECHO(Echo Protocol,回绕协议,应答协议,如linux中的echo命令),用于查错及测量应答时间(运行在TCP和UDP协议上)本文示例为echo协议,服务器只需把收到的客户端的请求数据发给这个客户端即可,其它什么功能都不做。 tcp/ip是一个协议簇(族),TCP(传输控制协议)和IP(网际协议)是此协议簇的核心。七层OSI模型中,tcp/udp在传输层,而ip在网络层。 OSI七层协议由上到下分别是:应用层(http,https),表示层(简单地说不同计算机通信会话进行表示转化,使系统能够识别,把数据转换为能与接收者的系统格式兼容并适合传输的格式。),会话层(设置和维护电脑之间通信连接,ssh),传输层(TCP/UDP),网络层(网际协议IP),数据链路层(表头和表尾...阅读全文

博文 2019-04-04 09:53:00 www.allocmem.com

基于 kubernetes 的工作流任务调度工具 argo

前言argo 是一个基于 kubernetes CRD 实现的一个 Workflow(工作流) 工具,基于 kubernetes 的调度能力实现了工作流的控制和任务的运行,同时提供了一个 UI 来方便我们查看任务的进程和详情等等;因为基于 kubernetes CRD 来进行 Workflow 的配置,所以我们使用标准的 kubernetes 来进行相关的配置,并可以直接 kubectl 来进行管理;在 argo 配置 Workflow 的实现中,template 是一个重要的概念,他是我们配置 Workflow 的支撑;templatetemplate 在 argo 中代表可运行的节点,一共有 6 种分类,分别是 Container, Script, Resource, Suspend, ...阅读全文

博文 2019-04-04 15:44:01 知乎

Hugepage导致进程占用物理内存过多的问题

Hugepage导致进程占用物理内存过多的问题 首页 分类 标签 留言 关于 订阅 2015-04-30 | 分类 Linux | 标签 memory 1 问题 业务同样的程序跑在TDocker、XEN,占用的内存却相差很大。 TDocker: XEN: 可以看到,虽然VIRT一样,但是程序占用的物理内存却相差6倍。 2 原因分析 经过各种分析,后来levy同学发现关闭transparent hugepage就解决了这个问题。TDocker使用的CentOS6.5的内核,默认开启了transparent hugepage。 # cat /sys/kernel/mm/redhat_transparent_hugepage/enabled [always] madvise never 关闭tra...阅读全文

博文 2019-07-31 03:52:21 hustcat.github.io

如何在Linux中截断truncate文件

在某些情况下,您可能希望将现有文件截断(空)为零长度。简单来说,截断文件意味着删除文件内容而不删除文件。截断文件比删除文件,重新创建并设置正确的权限和所有权更快,更容易。另外,如果文件是由进程打开的,则删除文件可能会导致使用该文件的程序出现故障。本教程说明了如何在Linux系统中使用shell重定向和truncate命令将文件截断为零大小。Shell重定向截断文件最简单,最常用的方法是使用> Shell重定向操作符。使用重定向截断文件的一般格式为:: > filename让我们分解一下命令::冒号表示true,不产生输出。重定向操作符>将先前命令的输出重定向到给定文件。filename,您要截断的文件。如果文件存在,它将被截断为零。否则,将创建文件。除了:以外,还可以使用另一个不产生任何输出...阅读全文

博文 2021-06-10 09:09:45 www.myfreax.com

git代码统计 - 不挑食的程序员

命令行 查看git上的个人代码量: git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' - 结果示例:(记得修改 username) added lines: 120745, removed lines: 71738, total lines: 49007 统计每个人增删行数 git log --format='%aN' | sort -u | while rea...阅读全文

博文 2019-05-20 08:43:50 SegmentFault 思否

Load和CPU利用率是如何算出来的

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/system/how_to_calc_load_cpu.html 相信很多人都对Linux中top命令里“load average”这一栏困惑过,到底什么是Load,Load代表了什么含义,Load高会有什么后果?“%CPU”这一栏为什么会超过100%,它是如何计算的? 带着这些问题,我们通过一些测试,来探索下其中的不解之处。 首先,我们通过实验来大概确定其计算方式: 测试服务器:4核Xeon处理器 测试软件:MySQL 5.1.40 服务器上除了MySQL没有运行其他任何非系统自带软件。因为MySQL只能单线程运行单条SQL,...阅读全文

博文 2019-08-17 01:49:28 P.Linux Laboratory

linux sort,uniq,cut,wc命令详解 - ggjucheng

sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。 sort语法 [root@www ~]# sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同; -b :忽略最前面的空格符部分; -M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法; -n :使用『纯数字』进行排序(默认是以文字型态来排序的); -r :反向排序; -u :就是 uniq ,相同的数据中,仅出现一行代表; -t :分隔符,默认是用 [tab] 键来分隔; -k :以那个区间 (field) 来...阅读全文

博文 2021-01-28 12:40:43 博客园

你听说过 JMX 么 - 程序员自由之路

什么是JMX JMX(Java管理扩展),是一套给应用程序引入监控管理功能的接口。比如我们可以通过JMX来监控Tomcat的运行状态。JMX最主要的应用场景就是中间件的监控,配置文件的在线修改配置。 相关概念 一个典型的JMX架构图: MBean:是Managed Bean的简称。在JMX中MBean代表一个被管理的资源实例,通过MBean中暴露的方法和属性,外界可以获取被管理的资源的状态和操纵MBean的行为。事实上,MBean就是一个Java Object,同JavaBean模型一样,外界使用自醒和反射来获取Object的值和调用Object的方法,只是MBean更为复杂和高级一些。 MBeanServer:MBean生存在一个MBeanServer中。MBeanServer管理这些MB...阅读全文

博文 2021-01-26 02:50:58 博客园

用nio实现Echo服务

今天突然间想用nio实现个Echo服务,程序实现起来实现不算困难,但跑起来后,在Server端的ServerSocket完成accept之后,我的CPU总是跳到100%。嗯,小郁闷,后来,才发现自己在Server端注册了多余的监听事件SelectionKey.OP_WRITE,改过来后好多了,希望记住这个教训。 EchoServer.java package edu.dlut.zxf.nio; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.Select...阅读全文

博文 2021-08-27 08:09:43 51CTO.COM

Redis事务及CAS(Check-And

Redis事务在web/activity中见过事务机制保证发券环节对券码存量校验,这是典型的并发、读写操作的实例。 Redis的事务机制Transaction通过四个命令来完成:MULTI, EXEC, DISCARD and WATCH,建议精读链接文章对Redis事务机制有详细介绍。 Redis事务机制特性 事务(transaction)的定义从multi开始,到exec结束。 同一个事务内的多个命令,具有原子性,不会被打断 It can never happen that a request issued by another client is served in the middle of the execution of a Redis transaction. This gua...阅读全文

博文 2022-11-02 03:08:28 Set)机制 | 小武的博客

startx 及xinit 介绍(经典)_小宋的博客

X-server管理鼠标、键盘、显卡、显示器 X-client处理程序的运行 ---------------------------------------------------------------------------------------------------- WM管理窗口:移动、变型、关闭、装饰...... ---------------------------------------------------------------------------------------------------- DE桌面环境:窗口管理器+面板+文件管理器+配套软件...... ---------------------------------------------------...阅读全文

博文 2020-07-13 02:27:56 CSDN博客_xinit

TCP/IP学习(四)TCP缓冲区大小及限制_胜利者的经验并不复杂,那就是寻找人生的关键点,并在关键时刻竭尽全力

这个问题在前面有的部分已经涉及,这里在重新总结下。主要参考UNIX网络编程。 (1)数据报大小 IPv4的数据报最大大小是65535字节,包括IPv4首部。因为首部中说明大小的字段为16位。 IPv6的数据报最大大小是65575字节,包括40字节的IPv6首部。同样是展16位,但是IPv6首部大小不算在里面,所以总大小比IPv4大一个首部(40字节)。 (2)MTU 许多网络有一个可由硬件规定的MTU。以太网的MTU为1500字节。有一些链路的MTU的MTU可以由认为配置。IPv4要求的最小链路MTU为68字节。这允许最大的IPv4首部(包括20字节的固定长度部分和最多40字节的选项部分)拼接最小的片段(IPv4首部中片段偏移字段以8个字节为单位)IPv6要求的最小链路MTU为1280字节。...阅读全文

博文 2021-08-26 06:31:32 CSDN博客_tcp缓冲区

shell脚本中各种括号的区别以及用法 - 云+社区

最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。一、小括号();双小括号(()) 1、单小括号 () 1:命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm)结构,便将$(comm)中的comm执行一次,得到其标准输出,再将此输出放到原来命令。# ls a b c # echo $(ls) a b c #echo `ls` a b c 2:用于初始化数组。如:array=(a b c d)[root@localhost ~]# array=(a b c d) [root@localhost ~]# declare -a declare -a array='([0]="a" [1]="b" ...阅读全文

博文 2022-04-06 11:50:13 腾讯云

【JDK 11】关于 Java 模块系统,看这一篇就够了

继 2014 年 3 月 Java 8 发布之后,时隔 4 年,2018 年 9 月,Java 11 如期发布,其间间隔了 Java 9 和 Java 10 两个非LTS(Long Term Support)版本。作为最新的LTS版本,相比 Java 8,Java 11 包含了模块系统、改用 G1 作为默认 GC 算法、反应式流 Flow、新版 HttpClient 等诸多特性。作为 JDK 11 升级系列的第一篇,本文将介绍此次升级最重要的特性——模块系统。 1 模块系统简介 如果把 Java 8 比作单体应用,那么引入模块系统之后,从 Java 9 开始,Java 就华丽的转身为微服务。模块系统,项目代号 Jigsaw,最早于 2008 年 8 月提出(比 Martin Fowler 提...阅读全文

博文 2023-09-13 16:35:02 掘金

awk中的多字符分隔符转义问题 - aquastar

多字符作为分隔符: 一,如果是A或B的关系的话就用 echo "xAxxBxxx" | awk -F '[AB]' '{print $1"|"$2"|"$3}' 结果是 x|xx|xxx 二,如果是AB整体作为分隔符 echo "xABxx" | awk -F 'AB' '{print $1"|"$2}' 结果是 x|xx 三,一个特别情况碰到一个实际情况,我需要用三个竖杠来做分隔符("|||")于是我就写成 echo "x|||xx" | awk -F '|||' '{print $1}' 结果是 x|||xx 相当于说三个竖杠相当于没有起作用经过小想和实践,竖杠需要转义,转义符也需要转义: echo "x|||xx|||xxx" | awk -F '\\|\\|\\|' '{print ...阅读全文

博文 2023-09-01 08:36:42 博客园

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 博客园

mongodump 备份 - 高权

规划 副本集,其中加了个隐藏节点,用来做备份,所以备份脚本直接在隐藏节点做,目前数据不大,直接本机磁盘存储,后续如果数据集大,那么在本地存最近一天的备份,远程根据需求存储几天的备份 创建备份用户 db.createUser( { user: "backup", pwd: "password", roles: [ "backup" ] } ) 备份脚本 #!/bin/bash PATH=$PATH:/usr/local/mongodb/bin export PATH port=27017 user="backup" password="password" backup_home="/data/backup" backup_date="`date +"%Y%m%d"`" backup_dir="...阅读全文

博文 2023-10-13 16:54:51 博客园

malloc中的系统调用brk和mmap - 一生热爱

malloc中的系统调用brk和mmap 环境 ubuntu14.04 malloc通过系统调用的方式从操作系统申请内存,malloc内部又通过系统调用brk()或mmap来申请内存的。入下图进程虚拟内存布局所示,mmap对应Memory Mapping Segment,brk对应Heap. brk brk通过增加program break的位置(brk)从内核申请(非零值初始化)内存。一开始堆段(heap segment)的其实位置(start_brk)和结束位置(brk)指向同一个位置。 当ASLR(Address Space Layout Randomization)关闭时,start_brk和brk同时指向data/bss段的结束位置(end_data) 当ASLR打开时,start...阅读全文

博文 2023-05-12 15:49:36 博客园

Dummynet简单部署

本文分享自天翼云开发者社区《Dummynet简单部署》,作者:凸凹部署流程^准备内核版本 ^参看系统内核版本uname -r 我们需要将ipfw编译成内核模块,请确保ipfw用到的内核源码版本同你linux系统运行内核版本一致。^编译dummynethttps://github.com/FS1360472174/dummynet.git 下载包^上传解压​^进入操作目录cd dummynet-master​^编译make KERNELPATH=/usr/src/kernels/3.10.0-957.el7.x86_64/​^加载ipfw 模块cd kipfw-modinsmod ipfw_mod.ko​cd ../ipfwcp ipfw /sbinchmod 700 /sbin/ipfw​^...阅读全文

博文 2023-05-25 09:05:15 Tianyiyun

【Linux】 shell if的[]和[[]]区别、=~语法_shell if []

文章目录 1. []和test2. []和[[]]区别2.1 先有[] 语法,并内置于linux系统,后来才有 [[]]2.2 [] 语法 都可以由 [[]] 替代,并且后者功能更丰富。2.3 二者都建议在表达式和括号自身使用空格避免出错2.4 [] 和 [[]] 中,字符串可以不加引号,此时等号右侧支持通配符2.5 当目标是数字类型时,二者都可以使用 -eq进行数字比较2.6 当目标是数字类型时,都支持>、>=等 数字比较符2.7 都可以使用= 、!=进行字符串比较2.8 在逻辑表达式语法稍有不同,[] 使用 -a、-o 分别表示与、或 关系 ,[[]]使用 &&、 ||表示与 、或关系2.9 逻辑运算符的优先级2.10 [[]]支持字符串模糊匹配,而[]不支持2.11 [[]]支持=~字...阅读全文

博文 2024-04-19 10:16:28 CSDN博客

Linux使用ssh超时断开连接的真正原因与解决【转】

文时间:2017-01-28 20:39:23原文作者:永动机原文出处:Linux使用ssh超时断开连接的真正原因一、挖坑这篇的起因主要是来自上一个问题「iTerm2中ssh保持连接不断开」。原本以为是个很常见的小问题,随手一搜,解决办法一大堆,试了试可行,就觉得没什么问题了。但,正因为觉得太简单了,在文末去查看了一下服务端配置,想找找问题起因,结果却发现开辟了一个深坑……查看的默认配置:$ echo $TMOUT $ # ... #TCPKeepAlive yes # ... #ClientAliveInterval 0 #ClientAliveCountMax 3 # ...二、入坑1、提问提个问题:既然ssh是空闲过久导致连接超时而断开,那么「ssh默认是多久时间,会自动断开连接?」结...阅读全文

博文 2024-02-25 21:03:32 知乎

linux shell 脚本调试技巧

本文分享自天翼云开发者社区《linux shell 脚本调试技巧》,作者:g****n1.bash -x 加脚本这是最常用的调试手段,终端会打印出,脚本执行过程中的每一个命令。a. 查看脚本流程有无错误b.查看变量值有无错误c.查看退出位置是否符合预期例如脚本 small_test.sh #!/bin/bashecho 1echo 2echo 3shell中执行 bash -x small_test.sh执行效果,会打印出,每一行代码的执行细节,类似于gdb的调试。[root@localhost ~]# bash -x small_test.sh + echo 11+ echo 22+ echo 332.bash一但有任何一个语句返回非真的值,则退出bashset -o errexit或者写...阅读全文

博文 2024-04-24 14:13:25 Tianyiyun

xargs 命令教程

xargs是 Unix 系统的一个很有用的命令,但是常常被忽视,很多人不了解它的用法。 本文介绍如何使用这个命令。 一、标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数。 $ cat /etc/passwd | grep root 上面的代码使用了管道命令(|)。管道命令的作用,是将左侧命令(cat /etc/passwd)的标准输出转换为标准输入,提供给右侧命令(grep root)作为参数。 因为grep命令可以接受标准输入作为参数,所以上面的代码等同于下面的代码。 $ grep root /etc/passwd 但是,大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数。举例来说,echo命令就不接受...阅读全文

博文 2024-03-27 10:42:01 阮一峰的网络日志