badblock命令用于查找磁盘中损坏的区块。硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏...
前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。...本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.32内核版本)。...源码看socket的阻塞和非阻塞>>中,博客地址如下: https://my.oschina.net/alchemystar/blog/1791017) 既然知道了tfile->f_op->poll的实现...的软中断机制调用net_rx_action,如下图所示: 注:上图来自PLKA(>) step2: 紧接着跟踪next_rx_action next_rx_action...总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐_。
从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。...本文就是笔者在探究epoll源码过程中,对kernel将就绪描述符添加到epoll并唤醒对应进程的一次源码分析(基于linux-2.6.32内核版本)。...(注:由于是tcp socket,所以这边sock->ops=inet_stream_ops,这个初始化的过程在我的另一篇博客>中,博客地址如下: https...注:上图来自PLKA(>) step2: 紧接着跟踪next_rx_action next_rx_action |-process_backlog .........总结 epoll作为linux下非常优秀的事件触发机制得到了广泛的运用。其源码还是比较复杂的,本文只是阐述了epoll读写事件的触发机制,探究linux kernel源码的过程非常快乐^_^。
从linux源码看socket的close 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。...上篇博客讲了socket的阻塞和非阻塞,这篇就开始谈一谈socket的close(以tcp为例且基于linux-2.6.24内核版本) TCP关闭状态转移图: 众所周知,TCP的close过程是四次挥手...出现大量close_wait的情况 linux中出现大量close_wait的情况一般是应用在检测到对端fin时没有及时close当前连接。有一种可能如下图所示: ?...总结 linux内核源代码博大精深,阅读其代码很费周折。之前读>的时候由于有先辈引导和梳理,所以看书中所使用的BSD源码并不觉得十分费劲。...直到现在自己带着问题独立看linux源码的时候,尽管有之前的基础,仍旧被其中的各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。
前言 看一团跳动的火焰~ 安装 [root@iZo7e61fz42ik0Z game]# wget https://github.com/tondrolee/Softwares/blob/master/
但是家里没有找到合适的 U 盘(穷~~),加上前段时间听了同事关于 linux 内核的分享,感慨自己对系统的理解不够。因此我决定使用无盘启动 volumio 顺便研究一下 linux 启动原理。...可以直接通过 Http 协议获取 Linux kernel 和 ramdisk 然后启动 或者加载一块 iscsi 磁盘,将 linux kernel 和 ramdisk 等信息放在 iscsi 磁盘中...引导加载程序:Syslinux 和 GRUB 前文说到 MBR 的 bootloader 主要功能是交棒内核,但是 bootloader 不会直接拉起 linux 内核,400K 太小,它没有能力将 linux...它可以提供选单选择 Linux 内核版本,此外加载程序使得我们可以向 Linux 内核传递参数。这点很重要,在我的案例中 volumio 就是通过 Syslinux 向内核传递启动参数的。...Linux 能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz 是可执行的 Linux 内核。 initrd 是“initial ramdisk”的简写。
1.在有些时候数据会存在缓存中而没有写入磁盘中 数据同步考入磁盘 sync 2.关机重启指令
当我们还在体验 Linux 5.5 稳定发行版带来更好的硬件支持时,Linux 5.6 已经来了。说实话,Linux 5.6 比 5.5 更令人兴奋。...即使即将发布的 Ubuntu 20.04 LTS 发行版将自带 Linux 5.5,你也需要切实了解一下 Linux 5.6 内核为我们提供了什么。...我将在本文中重点介绍 Linux 5.6 发布版中值得期待的关键更改和功能: Linux 5.6 功能亮点 当 Linux 5.6 有新消息时,我会努力更新这份功能列表。...换句话说,这只是 Linux 文件系统的一种新压缩技术,你可以选择待定的文件扩展技术。...因此,如果你好奇 Linux 5.6 所涉及的全部更改,则可以亲自了解一下。 现在你已经了解了 Linux 5.6 发布版带来的新功能,对此有什么看法呢?在下方评论中留下你的看法。
本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...以下为代码对比: ========================>linux 内核版本2.6.32-431<======================== #define TCP_TIMEOUT_INIT...timeout = ((2 << boundary) - 1) * rto_base; ...... } ========================>linux 内核版本2.6.32.630时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: 由于没有java并没有设置so_sndtimeo的选项,所以在...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。
今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。...关于epoll的原理可以看下笔者之前的博客《从linux源码看epoll》: https://www.cnblogs.com/alchemystar/p/13161781.html 在这里描述一下原因,...为了解决这一问题,Linux提供了so_reuseport这个参数,其原理如下图所示: 多个fd监听同一个端口号,在内核中做负载均衡(Sharding),将accept的任务分散到不同的线程的不同...accept_queue被填充后,由用户线程通过accept系统调用从队列中获取对应的fd 值得注意的是,当用户线程来不及处理的时候,内核会drop掉三次握手成功的连接,导致一些诡异的现象,具体可以看笔者的另一篇博客...源码看Socket(TCP)的listen及连接队列》: https://www.cnblogs.com/alchemystar/p/13845081.html 总结 Linux内核源码博大精深,每次扎进去探索时候都会废寝忘食
---- 背景 之前做 MySQL 参数优化的时候,为了寻找瓶颈,我通常是观察 MySQL 的 status ,看哪些计数器有问题,以便确认问题的大致范围和应该调整的参数。...00:00:22 /usr/local/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/etc/my-3306.cnf root...---- 观察 Linux 的 IO 使用情况 对于 IO 的观察也有一个原则,那就是先看总量再看结构,最后精确到文件。 1....看总量 mpstat 1 20 Linux 5.14.0-55.el9.x86_64 (git-sqlpy-com) 07/21/2022 _x86_64_ (2 CPU) 01:16:46...看结构(到底在执行什么操作) funccount -p 111659 -i 1 'vfs_*' FUNC COUNT b'vfs_fsync_range
今天笔者就来从Linux源码的角度看下Server端的Socket在进行bind的时候到底做了哪些事情(基于Linux 3.10内核)。...返回,若成功则为0,若出错则为-1 int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen); 好了,我们直接进入Linux...SO_REUSEPORT SO_REUSEPORT是Linux在3.9版本引入的新功能。...鉴于此,Linux增加了SO_REUSEPORT,而之前bind中判断是否冲突的下面代码也是为这个参数而添加的逻辑: if(!reuseport || !...https://www.nginx.com/blog/socket-sharding-nginx-release-1-9-1/ 总结 Linux内核源码博大精深,一个看起来简单的bind系统调用竟然牵涉这么多
从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌。...本文大部分讨论的是socket设置为block的情况,即setNonblock(false),仅在最后提及了nonblock socket(本文基于linux 2.6.32-431内核)。...timeout = ((2 << boundary) - 1) * rto_base; ...... } ========================>linux 内核版本2.6.32.630时,将socket设置为非阻塞,然后用select系统调用去模拟超时,而没有走linux本身的超时逻辑,如下图所示: ?...java的SocketInputStream的sockRead0超时时间 java的超时时间由SO_TIMOUT决定,而linux的socket并没有这个选项。
在LINUX 中proc目录中有所有相关的进程的信息, PSS 通过下面的预计获得,所以RSS - PSS 等于的就是进程独享的内存 ps -u postgres o pid= | sed 's#.
据 AI 研习社所了解,此消息一出,Linux 社区颇受震动。 于是问题来了:Canonical 为什么要放弃 Unity? ?...因此,桌面版本的 Ubuntu 很可能最终会被 Canonical 放弃,尤其是用户有那么多独立开发的桌面 Linux 选项。“ Canonical 的官方公告 ?...Ubuntu 手机操作系统 Linux 用户的反应 这是 Reddit 上多位 Linux 老司机的观点,坦然者有之,担忧者也有。 ShibaTheDestroyer: “对这事儿我真的不担心。...因此分歧开始出现,尤其是 Linux Mint 开发者社区打造的 Cinnamon。” DSMcGuire: “我觉得在 Gnome 变得可用之前,Unity 7 填补了真空。
前言:昨天有个同学碰到发送udp包时收到destination unreachable的icmp包问题,本文简单介绍一下linux5.9中icmp包的处理流程。...icmp_socket_deliver(skb, info);} 继续看icmp_socket_deliver static void icmp_socket_deliver(struct sk_buff...sk->sk_error_report = sock_def_error_report; 接着看sock_def_error_report static void sock_def_error_report
(ls -l|grep “^-“| wc -l)查看某个文件夹下文件的个数。 (ls -lR|grep “^-“| wc -l)查看某个文件夹下文件的个数,包...
前言:很久没有看内核的代码了,假期开始看一下,之前看了一下0.11和1.2.13的代码,虽然大致了解了一些原理,但是毕竟比较旧了,再者很多功能还没有实现,比如epoll,所以这次选取的是5.9的版本,...再也不怕过时了,当然,现在内核的代码量级非常大,不可能看得完也不可能都看,只是选取自己感兴趣的一些点看一下。...看内核代码,总的来说是非常有趣的,不仅是因为知其然知其所以然,而且看到朴素的c语言,还有世界级大佬写代码的思路、思想,甚至注释,都是非常有意思的事情。...今天分析的内容是从socket函数开始,看看linux网络层的设计。下面我们看一下我们平时写网络编程代码时的用法。...很多同学应该都知道Linux万物皆文件的哲学思想,当我们调用socket拿到一个结构体后,并不是把这个结构体返回给调用方,而是返回一个文件描述符fd。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内...
Linux 3.2.0-23-generic (linux) 09/08/2014 _x86_64_ (8 CPU) 02:01:55 PM dentunusd file-nr inode-nr
领取专属 10元无门槛券
手把手带您无忧上云