- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 Linux实战-监控
好的系统需要监控,监控包括系统和应用两部分,系统监控包括整体资源的使用情况,比如CPU、内存、磁盘和文件系统以及网络等;应用监控包含应用程序内部的各种运行状态,比如进程的CPU、磁盘IO等整体运行情况,也需要包括接口的调用耗时、执行过程中的错误、内部对象的内存使用。USE法适合系统监控,但不一定适合应用监控,比如应用监控的cpu使用率很低,但因为存在死锁、慢sql、rpc调用超时等问题。
2024-06-13 14:55:10 606 1
原创 Linux实战-网络
C10K 问题的根源,一方面在于系统有限的资源;另一方面,也是更重要的因素,是同步阻 塞的 I/O 模型以及轮询的套接字接口,限制了网络事件的处理效率。Linux 2.6 中引入的 epoll ,完美解决了 C10K 的问题,现在的高性能网络方案都基于 epoll。从 C10K 到 C100K ,可能只需要增加系统的物理资源就可以满足;但从 C100K 到 C1000K ,就不仅仅是增加物理资源就能解决的问题了。
2024-06-04 09:57:03 777
原创 Linux实战-IO
磁盘为操作系统提供了基本的持久化存储文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构索引节点,简称为 inode,用来记录文件的元数据,比如 inode 编号、文件大小、访问权限、修改日期、数据的位置等。索引节点和文件一一对应,它跟文件内容一样,都会被持久化存储到磁盘中。所以记住,索引节点同样占用磁盘空间。目录项,简称为 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的关联关系。多个关联的目录项,就构成了文件系统的目录结构。不过,不同于索引节点,目。
2024-06-02 09:52:31 630
原创 Linux实战-内存
对普通进程来说,它能看到的其实是内核提供的虚拟内存,这些虚拟内存还需要通过页表,由系统映射为物理内存。当进程通过 malloc() 申请内存后,内存并不会立即分配,而是在首次访问时,才通过缺页异常陷入内核中分配内存。由于进程的虚拟地址空间比物理内存大很多,Linux 还提供了一系列的机制,应对内存不足的问题,比如缓存的回收、交换分区 Swap 以及 OOM 等。当你需要了解系统或者进程的内存使用情况时,可以用 free 和 top 、ps 等性能工具。
2024-05-31 17:57:16 1920
原创 Linux实战-CPU
平均负载变高,有可能是cpu密集型进程导致的平均负载高,并不一定代表cpu使用率高,也可能是io更繁忙了平均负载高,可以借助mpstat、pidstat来排查碰到常规问题无法解释的 CPU 使用率情况时,首先要想到有可能是短时应用导致的问题,比如有可能是下面这两种情况。第一,应用里直接调用了其他二进制程序,这些程序通常运行时间比较短,通过 top 等工具也不容易发现。第二,应用本身在不停地崩溃重启,而启动过程的资源初始化,很可能会占用相当多的CPU。
2024-05-28 09:20:58 877
原创 PageHelper源码浅析
PageHelper我们都不陌生,经常在项目中用作分页,它的用法也很简单,直接用PageHelper.startPage就可以完成分页了,那么PageHelper底层是怎么帮助我们实现分页功能的呢?在进入源码的剖析之前先猜想一下PageHelper的原理:PageHelper通过在sql最后面拼接limit从而实现分页,在这里初步推测是拦截了query方法,把原来的MapperStatement替换成了新的MapperStatement,新的MS有分页信息。
2024-05-02 14:39:26 1453 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人