2.JAVA中的I/O模型 JAVA中的I/O模型 I/O 模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了程序通信的性能。 Java 共支持 3 种网络编程的/IO 模型:同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 实际通信需求下,要根据不同的业务场景和性能需求决定选择不同的I/O模型。 同步阻塞IO:在此种方式下,用户进程在发起一个IO操作以后,必须等待IO操作的完成, 开发运维 2023-07-18 捡田螺的小男孩
I/O模型 httpd有三种MPM 1,prefork:一个主进程生成多个子进程,每个子进程处理一个请求,通常他以管理员的用户启动,监听在80端口(复用IO,select多路调用模型) 2,Work:一个主进程生成多个子进程,每个子进程生成多个线程,每个线程响应一个请求(复用IO) 3,event:一个主进程生成多个子进程,每个子进程响应多个请求(事件驱动IO) I/O模型通常有两种方式,分别为同步IO和异步 系统运维 2023-07-16 剑圣无痕
zabbix自动磁盘IO和TCP监控 监控磁盘io发现脚本脚本内容: #!/usr/bin/perl 1. ------------------------------------------------------------------------------- 1. Filename: disk i/o 1. Revision: 1.1 1. Date: 20160707 1. Author: mark 1. Email: us 云计算 2023-07-15 穿过生命散发芬芳
一文了解io.ReadAtLeast函数 引言 io.ReadAtLeast 函数是Go标准库提供的一个非常好用的函数,能够指定从数据源最少读取到的字节数。本文我们将从io.ReadAtLeast 函数的基本定义出发,讲述其基本使用和实现原理,以及一些注意事项,基于此完成对io.ReadAtLeast 函数的介绍。 基本说明 2.1 基本定义 io.ReadAtLeast 函数用于从读取器(io.Reader)读取至少指定数量的字节数据到 开发运维 2023-07-14 三掌柜
一文了解io包中的discard类型 引言 io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用。本文我们将从io.discard 类型的基本定义出发,讲述其基本使用和实现原理,接着简单描述 io.discard 的使用场景,基于此完成对 io.discard 类型的介绍。 介绍 2.1 基本定义 io.discard 是 Go语言提供的一个Writer,这个Writer 比较特殊,其不会做任何事 开发运维 2023-07-14 大猫
一文了解 io.LimitedReader类型 引言 io.LimitedReader 提供了一个有限的读取功能,能够手动设置最多从数据源最多读取的字节数。本文我们将从 io.LimitedReader 的基本定义出发,讲述其基本使用和实现原理,其次,再简单讲述下具体的使用场景,基于此来完成对io.LimitedReader 的介绍。 基本说明 2.1 基本定义 io.LimitedReader 是Go语言提供的一个Reader类型,其包装了了 开发运维 2023-07-14 剑圣无痕
对象存储——Minio初探 一 MinIO简介 答:minio是混合云和多云对象存储。根据官网上的描述,MinIO 提供高性能、与S3 兼容的对象存储系统,让你自己能够构建自己的云储存服务。MinIO原生支持 Kubernetes,它可用于每个独立的公共云、每个 Kubernetes 发行版、私有云和边缘的对象存储套件。MinIO是软件定义的,不需要购买其他任何硬件,在 GNU AGPL v3 下是 100% 开源的。 没错 开发运维 2023-07-14 法医
解决System.in关闭后无法再继续使用流的问题 解决System.in关闭后无法再继续使用流的问题 关于new BufferedReader(new InputStreamReader(System.in))出现的Stream Closed的错误 在某天练习io流的时候无意中写了一个代码一直在报Stream Closed错误 package com.cyc; import java.io.BufferedReader; import java. 开发运维 2023-07-14 法医
一文了解 io.Copy 函数 引言 io.Copy 函数是一个非常好用的函数,能够非常方便得将数据进行拷贝。本文我们将从io.Copy 函数的基本定义出发,讲述其基本使用和实现原理,以及一些注意事项,基于此完成对io.Copy 函数的介绍。 基本说明 2.1 基本定义 Copy函数用于将数据从源(io.Reader)复制到目标(io.Writer)。它会持续复制直到源中的数据全部读取完毕或发生错误,并返回复制的字节数和可能的错 开发运维 2023-07-14 大白菜程序猿
blktrace工具是什么?工作原理呢?如何定位硬盘解决时延高问题? Blktrace简介 blktrace是一个针对Linux内核中块设备IO层的跟踪工具,用来收集磁盘IO信息中当IO进行到块设备层(block)时的详细信息(如IO请求提交、入队、合并、完成等信息),是由Linux内核块设备层的维护者开发的,目前已经集成到内核2.6.17及其后内核版本中。blktrace可以获取IO请求队列的各种详细的情况,包括进行读写的进程名称、进程号、执行时间、读写的物理块号 桌面运维 2023-07-13 共饮一杯
理解五种网络模型和零拷贝的原理 前置知识: 计算机系统中,应用是没办法直接操纵内存的,应用属于用户态,操纵内存(硬件)需要内核态,也是防止用户态权限过大 所有IO 阻塞IO(Blocking IO) 非阻塞IO(Nonblocking IO) IO多路复用(IO Multiplexing) 信号驱动IO(Signal Driven IO) 异步IO(Asynchronous IO) 阻塞IO(Blocking IO) 应用是无法 开发运维 2023-07-12 LOVEHL^ˇ^
Linux高性能网络编程十谈|IO复用和模式 通常我们写一个linux的client和server如下图: 网络图 但是怎么提升性能?系统是如何快速处理网络事件?因此本文就来谈谈IO复用和模式。 第一部分:模式 我们都知道socket分为阻塞和非阻塞,阻塞情况就是卡住流程,必须等事件发生;而非阻塞是立即返回,不管事件是否有没有准备好,需要上层代码通过EAGAIN,EWOULDBLOCK和EINPROGRESS等errno返回值来判断,基于非阻 开发运维 2023-07-12 贤蛋大眼萌
k8s.gcr.io 镜像仓库将从 2023 年 4 月 3 日起被冻结 作者:Mahamed Ali (Rackspace Technology) 译者:Michael Yao (Daocloud) Kubernetes 项目运行一个名为 registry.k8s.io、由社区管理的镜像仓库来托管其容器镜像。 2023 年 4 月 3 日,旧仓库 k8s.gcr.io 将被冻结,Kubernetes 及其相关子项目的镜像将不再推送到这个旧仓库。 registry.k8 云计算 2023-07-11 张二河
k8s.gcr.io 重定向到 registry.k8s.io 作者:Bob Killen (Google)、Davanum Srinivas (AWS)、Chris Short (AWS)、Frederico Muñoz (SAS Institute)、Tim Bannister (The Scale Factory)、Ricky Sadowski (AWS)、Grace Nguyen (Expo)、Mahamed Ali (Rackspace Techno 云计算 2023-07-11 法医
Kubernetes 在 v1.27 中移除的特性和主要变更 作者:Harshita Sao 译者:Michael Yao (DaoCloud) 随着 Kubernetes 发展和成熟,为了此项目的整体健康,某些特性可能会被弃用、移除或替换为优化过的特性。 基于目前在 v1.27 发布流程中获得的信息,本文将列举并描述一些计划在 Kubernetes v1.27 发布中的变更, 发布工作目前仍在进行中,可能会引入更多变更。 k8s.gcr.io 重定向到 r 云计算 2023-07-11 竹子爱熊猫
MySQL索引凭什么能让查询效率提高这么多? MySQL的索引本质上是一种数据结构 让我们先来了解一下计算机的数据加载。 磁盘IO和预读: 先说一下磁盘IO,磁盘读取数据靠的是机械运动,每一次读取数据需要寻道、寻点、拷贝到内存三步操作。 寻道时间是磁臂移动到指定磁道所需要的时间,一般在5ms以下; 寻点是从磁道中找到数据存在的那个点,平均时间是半圈时间,如果是一个7200转/min的磁盘,寻点时间平均是600000/7200/2=4.17ms 数据运维 2023-07-11 大白菜程序猿
Rust 1.70.0发布,带来哪些新的东东? Rust 团队日前发布了 Rust 的新版本 —— 1.70.0,新版本中值得关注的变化包括: Crates.io 默认启用稀疏索引 Cargo 的 "sparse" 协议现在默认启用,用于从 crates.io 读取索引。这个功能之前已经在 Rust 1.68.0 中稳定下来,但仍然需要配置才能在 crates.io 中使用。原计划就是在 1.70.0 中默认启用该功能的,现在如期实现。 当你从 开发运维 2023-07-11 穿过生命散发芬芳
Go语言中TCP协议和异步IO处理技术 随着互联网技术的不断发展,TCP协议和异步IO处理技术也愈发重要。作为一门现代化的编程语言,Go语言天然支持TCP协议和异步IO处理技术,这使得Go语言在开发网络应用中极其方便和高效。本篇文章将从TCP协议和异步IO处理技术两个方面来探讨Go语言在网络应用开发中的优势。 一、TCP协议 TCP协议是一种可靠的、面向连接的网络传输协议。它能够保障网络传输的可靠性,同时还能够通过拥塞控制机制来稳定网络 开发运维 2023-07-11 竹子爱熊猫
Python协程 VS 异步编程(asyncio) 简单介绍 asyncio 的简单介绍 在介绍之前先来普及两个概念: 「异步IO:」就是发起一个IO操作(如:网络请求,文件读写等),这些操作一般是比较耗时的,不用等待它结束,可以继续做其他事情,结束时会发来通知。 「协程:」又称为微线程,在一个线程中执行,执行函数时可以随时中断,由程序(用户)自身控制,执行效率极高,与多线程比较,没有切换线程的开销和多线程锁机制。 python中异步IO操作是通过async 开发运维 2023-07-10 醒在深海的猫
SuperGloo—服务网格编排平台 笔者2017年就曾注意到 solo.io 这家公司,它的创始人 Idit 曾在 KubeCon 上分享过 Squash,去年11月推出了 SuperGloo 服务网格编排器再起吸引了我的注意,但最重要的一件事是,Christian Posta 于2018年1月3号宣布加盟 solo.io,这让我很惊讶,我原以为他会加入 T 公司。 Idit Levine Idit Levine 现为 solo.i 云计算 2023-07-10 张二河