自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

从0到1,突破自己

努力创造自己的奇迹,而不是等待奇迹的发生。

  • 博客(823)
  • 资源 (44)
  • 收藏
  • 关注

原创 5.86 BCC工具之tcpstates.py解读

tcpstates工具将会打印 TCP 状态更改信息,包括在每个状态中持续的时间(以毫秒为单位)。它是一个用于监控和分析TCP连接状态变化的工具。它利用BPF程序来跟踪TCP连接的生命周期,并记录每个连接在不同状态(如SYN_SENT、SYN_RECV、ESTABLISHED、FIN_WAIT1、FIN_WAIT2、TIME_WAIT等)下花费的时间。tcpstates工具的工作原理是通过在内核中附加BPF程序来捕获TCP状态变化事件。

2024-03-24 07:55:29 208

原创 5.85 BCC工具之tcprtt.py解读

tcprtt工具通过追踪TCP的RTT(往返时间)来分析网络质量,进而帮助我们区分网络延迟问题是由用户进程还是物理网络引起的。它可以用于测量和分析TCP连接的往返时间(RTT)。RTT是衡量网络性能的关键指标之一,它表示从发送一个数据包到接收到该数据包的确认所需的时间。通过测量RTT,可以了解网络连接的延迟情况,这对于诊断网络问题、优化网络性能以及确保应用程序的响应性至关重要。tcprtt工具通过在内核级别跟踪TCP数据包的发送和接收来计算RTT。

2024-03-24 07:55:04 494

原创 5.84 BCC工具之tcpretrans.py解读

tcpretrans工具追踪内核TCP重传函数,以显示这些重传的详细信息。它专门用于追踪TCP重传事件。在网络通信中,重传是由于数据包丢失、损坏或延迟到达而需要重新发送的情况。tcpretrans通过利用Linux内核中的BPF(Berkeley Packet Filter)机制,能够实时捕获和分析这些重传事件,帮助开发者和网络管理员诊断网络问题、优化网络性能。

2024-03-23 07:48:37 648

原创 5.83 BCC工具之tcplife.py解读

tcplife工具统计了在追踪过程中打开和关闭的 TCP 会话。tcplife工具能够显示 TCP 会话的生命周期和吞吐量统计。它可以追踪 TCP 连接的建立、数据传输和关闭过程,并提供有关连接持续时间、传输的字节数等详细信息。这对于分析和优化网络性能、识别潜在的网络问题以及了解应用程序的网络行为非常有用。

2024-03-23 07:47:55 431

原创 5.81 BCC工具之tcpconnlat.py解读

tcpconnlat工具追踪执行活动TCP连接的内核函数(例如,通过connect()系统调用),并显示本地测量的连接延迟(时间):从发送SYN到响应数据包的时间。

2024-03-22 07:14:46 628

原创 5.80 BCC工具之tcpconnect.py解读

tcpconnect工具追踪执行活动TCP连接的内核函数(例如,通过connect()系统调用;accept()是被动连接)。

2024-03-22 07:14:21 448

原创 5.79 BCC工具之tcpaccept.py解读

tcpaccept工具用于追踪接受TCP套接字连接的内核函数(例如,通过accept()函数实现的被动连接;不是connect()函数)。

2024-03-21 07:33:05 683

原创 5.78 BCC工具之sslsniff.py解读

sslsniff工具可以用来追踪OpenSSL、GnuTLS和NSS的写入/发送和读取/接收函数。传递给这些函数的数据会以纯文本的形式打印出来。

2024-03-21 07:32:35 135

原创 5.77 BCC工具之solisten.py解读

该工具会追踪程序在监听TCP连接时调用的内核函数。它无法查看UDP或UNIX域套接字。当程序实际准备接受连接时,它可以用于动态更新负载均衡器,从而避免在初始化过程中出现“停机时间”。

2024-03-20 07:25:17 444

原创 5.76 BCC工具之sofdsnoop.py解读

追踪通过 Unix 套接字传递的文件描述符(FDs)。

2024-03-20 07:24:50 329

原创 5.75 BCC工具之netqtop.py解读

追踪在数据链路层上执行数据包发送 (xmit_one) 和数据包接收 () 的内核函数。该工具不仅通过指定的网络接口追踪每个数据包,还分别统计发送和接收方向上的 PPS(每秒数据包数)、BPS(每秒位数)和平均数据包大小以及按大小范围分类的数据包数量。结果以表格形式打印输出,可用于了解感兴趣的网络接口上每个队列的流量负载分配情况,以判断是否均衡。整体性能信息则在底部提供。

2024-03-19 07:31:53 444

原创 5.74 BCC工具之bindsnoop.py解读

bindsnoop工具追踪执行套接字绑定的内核函数,也就是追踪IPv4和IPv6的bind()调用,并打印在系统调用之前设置的可能会影响绑定行为和绑定接口的套接字选项

2024-03-19 07:31:28 286

原创 5.73 BCC工具之gethostlatency.py解读

gethostlatency是一个网络性能分析工具。它用于追踪主机名查找调用(getaddrinfo()、gethostbyname() 和 gethostbyname2()),并显示执行查找的 PID 和命令、调用的延迟(持续时间,以毫秒为单位)以及主机字符串。

2024-03-18 06:55:08 294

原创 5.72 BCC工具之wakeuptime.py解读

wakeuptime工具追踪工作在工作队列中的等待情况,并记录工作的排队延迟(时间)分布,当按下 Ctrl-C 时,将其以直方图的形式打印出来。

2024-03-18 06:54:36 199

原创 5.71 BCC工具之wqlat.py解读

wqlat工具统计线程阻塞的时间,并显示执行唤醒操作的线程的堆栈跟踪,以及唤醒进程和目标进程的进程名,以及总的阻塞时间。这个阻塞时间是从一个线程阻塞时开始统计的,直到发送唤醒信号时结束。请注意,这个时间不包括目标线程的一些运行队列延迟,因为目标线程如果需要等待在CPU上的轮次,可能不会立即执行。所有显示的数据,包括堆栈跟踪、进程名和时间,都在内核中使用eBPF映射进行高效汇总。该工具旨在在offcputime之后使用,offcputime显示了直接阻塞的堆栈。

2024-03-17 00:07:08 174

原创 5.70 BCC工具之runqslower.py解读

runqslower工具显示了任务准备运行与之后在CPU上运行之间的高延迟调度时间。该工具需要Linux 4.9+(支持BPF_PROG_TYPE_PERF_EVENT)。

2024-03-17 00:06:46 77

原创 5.69 BCC工具之runqlen.py解读

runqlen工具用于分析和报告运行队列(run queue)的长度,并以直方图的形式展示。它通过在所有CPU上以99赫兹的频率对运行队列长度进行采样来工作。在操作系统中,运行队列是指内核用来管理待执行(runnable)进程的队列。当一个进程准备好执行,但由于某些原因(如CPU资源不足、调度策略等)尚未被分配到CPU上运行时,它就会被放入运行队列中等待。它显示了不同运行队列长度出现的频率,也就是运行队列占用情况,从而帮助开发者了解系统的调度负载情况。

2024-03-16 07:04:59 109

原创 5.68 BCC工具之runqlat.py解读

runqlat工具用于分析和监视运行队列延迟。运行队列是操作系统内核中用于管理待运行进程的数据结构。当进程准备运行时,它们会被添加到运行队列中,然后由调度器选择并在 CPU 上执行。runqlat工具通过测量进程在运行队列中等待的时间,并以直方图的形式展示,它显示了任务等待在CPU上运行的时间。这帮助开发者了解系统调度行为的性能。使用该工具可以帮助我们识别和解决与调度延迟相关的问题。例如,如果发现某个进程或线程在运行队列中等待的时间过长,可能是由于调度器的不公平行为、资源争用或其他原因导致的。

2024-03-16 07:04:38 77

原创 5.67 BCC工具之profile.py解读

profile工具是一个用于追踪程序执行调用流程的强大工具。它通过在定时间隔内对程序的堆栈跟踪进行采样,并记录采样结果的频率。我们通过使用该工具可以确定程序中的瓶颈和热点,进而优化代码以提高性能。

2024-03-15 08:06:11 221

原创 5.66 BCC工具之offwaketime.py解读

offwaketime工具用于追踪和分析 Linux 系统中线程的 Off-CPU 时间,即线程不在 CPU 上执行的时间。特别地,它还关注哪些线程(唤醒者)唤醒了之前处于阻塞或休眠状态的线程。这对于性能分析和调试非常有用,尤其是当你想知道为什么某个线程在一段时间内没有执行时。它可以显示被阻塞和“off-CPU”的内核堆栈跟踪和任务名称,以及唤醒它们的线程的堆栈跟踪和任务名称,以及从它们被阻塞到被唤醒时的总经过时间。这结合了offwaketime和wakeuptime工具的总结。

2024-03-15 08:05:26 374

原创 5.65 BCC工具之offcputime.py解读

此程序显示被阻塞的堆栈跟踪以及它们被阻塞的总时长。它的工作原理是跟踪线程何时被阻塞以及何时返回CPU,同时测量它们被阻塞的时间(也称为“非CPU时间”)和被阻塞的堆栈跟踪以及任务名称。此数据通过内核进行汇总,按唯一的堆栈跟踪和任务名称汇总阻塞时间。

2024-03-14 07:32:28 251

原创 5.64 BCC工具之llcstat.py解读

llcstat用于在系统内跟踪缓存引用和缓存未命中事件,并按 PID 和 CPU 进行统计汇总。这些事件在 uapi/linux/perf_event.h 中定义,并在不同的体系结构上具有不同的含义。对于 x86-64,它们表示 LLC 的未命中和引用。

2024-03-14 07:31:57 191

原创 5.62 BCC工具之cpudist.py解读

cpudist会将任务在CPU上的时间汇总为直方图,显示任务在被取消调度之前在CPU上花费的时间。这提供了有价值的信息,可以指示过度订阅(处理器太少而任务太多)、由于过多上下文切换而产生的开销(例如,多个线程共用的常见锁)、工作负载分布不均、任务过于细化等。默认情况下,通过简单地排除PID 0,CPU的空闲时间被排除在外。另外,同样的选项也可用于汇总任务的离CPU时间,这有助于理解线程被取消调度的频率以及它们在等待I/O、锁、计时器和其他挂起原因上所花费的时间。

2024-03-13 07:50:06 256

原创 5.63 BCC工具之cpuunclaimed.py解读

cpuunclaimed工具用于采样CPU运行队列并计算未被占用的空闲CPU。此工具会采样运行队列的长度,并确定当存在空闲CPU时,仍有线程在等待运行。它会报告系统范围内未被等待线程占用的空闲CPU的百分比。应用程序被绑定到部分而非全部CPU上,并且有可运行的线程无法由于这种配置迁移到其他CPU上。CPU亲和性(CPU affinity):一种优化策略,将线程留在CPU上以保持CPU cache的亲和性,即使这意味着在其他CPU空闲时需要短暂等待。

2024-03-13 07:47:35 358

原创 5.82 BCC工具之tcpdrop.py解读

tcpdrop工具打印被内核丢弃的 TCP 数据包或段的详细信息,包括导致丢弃的内核堆栈跟踪。当网络出现拥堵、资源不足或其他原因导致数据包被内核丢弃时,tcpdrop可以帮助开发者和网络管理员识别并定位问题。该工具通过钩住内核中处理TCP数据包的相关函数,捕获丢弃事件并收集相关信息,如丢弃的TCP数据包的源IP、目的IP、端口号等。此外,它还可以提供内核堆栈跟踪,显示导致丢弃事件的内核函数调用链。

2024-03-12 22:17:19 1388

原创 5.61 BCC工具之syscount.py解读

syscount工具可以总结整个系统或特定进程的syscall计数,并打印可选的延迟信息。它对于一般的工作负载特征描述非常有用。

2024-03-12 07:18:30 348

原创 5.60 BCC工具之softirqs.py解读

软中断是内核中用于处理异步事件的一种机制,它们在特定的时机由内核调度执行,以完成诸如网络接收、磁盘 I/O 完成等任务。softirqs工具用于追踪和分析 Linux 内核中的软中断(softirq)事件。并将计时统计信息高效地存储在内核中。

2024-03-12 07:18:05 243

原创 5.59 BCC工具之ppchcalls.py解读

汇总了整个系统或特定进程的 计数,并提供了可选的延迟信息。它对于一般工作负载的特征描述非常有用。三,运行示例3.1 用法示例3.2 运行示例这些是前10个条目;你可以通过使用-T开关来获取更多内容。在这里,输出表明H_IPI,H_EOI和H_XIRR的hcalls非常常见,紧接着是H_VIO_SIGNAL,H_REMOVE等。默认情况下,ppchcalls会计算整个系统的数量,但我们可以将其指向感兴趣的特定进程:偶尔,hcall(超调用)的计数可能不足以满足需求,你还可能想要知道

2024-03-12 07:17:43 146

原创 5.58 BCC工具之mysqld_qslower.py解读

mysqld_qslower工具用于追踪 MySQL 服务器提供的查询,并打印出那些超过延迟(查询时间)阈值的查询。默认情况下,使用的阈值为 1 毫秒。

2024-03-11 07:18:13 274

原创 5.57 BCC工具之hardirqs.py解读

硬中断是由硬件设备(如网卡、磁盘控制器等)产生的,用于通知操作系统有紧急事件需要处理。正确地管理和响应硬中断对于系统性能至关重要,因为它们直接影响到系统的响应能力和吞吐量。而hardirqs工具用于跟踪硬中断(irqs),并将计时统计信息存储在内核中以提高效率。

2024-03-11 07:17:54 168

原创 5.56 BCC工具之funcslower.py解读

funcslower主要可以显示内核或用户函数调用慢于既定阈值的情况。当基于聚合的工具失败时,它可以用于最后的诊断。

2024-03-10 07:30:06 198

原创 5.55 BCC工具之funcinterval.py解读

eBPF/bcc非常适用于平台性能调优。通过funclatency工具,我们可以分析特定函数的性能,了解该函数的延迟情况。然而,有时性能下降并不是由于函数的延迟,而是函数调用之间的间隔。funcinterval正是为此而生。另外,在平台上进行硬件性能调优时,我们将使用协议分析器来分析性能,但大多数协议分析器都缺乏分布特性。使用协议分析器,你需要花费大量时间来检查每个细节的延迟。通过funcinterval,我们可以利用分布特性节省大量时间。

2024-03-10 07:29:41 138

原创 5.54 BCC工具之dbstat.py解读

dbstat工具用于追踪由 MySQL 或 PostgreSQL 数据库进程执行的查询,并显示查询延迟的直方图。

2024-03-09 06:54:27 164

原创 5.53 BCC工具之dbslower.py解读

dbstat用于追踪由MySQL或PostgreSQL数据库进程执行的查询,并显示查询延迟的直方图。

2024-03-09 06:54:07 346

原创 5.52 BCC工具之dbslower.py解读

dbslower工具用于追踪由 MySQL 或 PostgreSQL 服务器提供的查询,并打印出那些超过延迟(查询时间)阈值的查询。默认情况下,使用的阈值是 1 毫秒。

2024-03-08 07:26:22 485

原创 5.51 BCC工具之slabratetop.py解读

以类似于top命令的实时刷新显示方式,展示从内核内存分配缓存(SLAB 或 SLUB)中的分配速率和总字节数。例如:(注:SLAB 和 SLUB 是 Linux 内核中用于内存管理的两种不同机制,它们都提供了一种方式来缓存和管理小对象的内存分配。

2024-03-08 07:25:59 178

原创 5.50 BCC工具之shmsnoop.py解读

shmsnoop追踪shm*()系统调用。shm*()通常指的是与共享内存(shared memory)相关的系统调用,如shmget()shmat()shmdt(), 和shmctl()等。shmget(): 这个系统调用用于创建或获取一个共享内存段。它接收一个关键字(通常通过ftok()函数生成),共享内存段的大小,以及一些标志位(如IPC_CREAT用于创建新的共享内存段)。如果成功,它返回一个非负整数,即共享内存标识符(shmid);如果失败,则返回-1。shmat()

2024-03-07 07:25:22 247

原创 5.49 BCC工具之rdmaucma.py解读

首先,RDMA UCMA是什么?RDMA UCMA(用户空间连接管理器访问,Userspace Connection Manager Access)是与RDMA(远程直接内存访问,Remote Direct Memory Access)相关的一个概念。RDMA允许在两个或多个计算机之间进行通讯时,直接从一个主机的内存访问另一个主机的内存,而不需要操作系统CPU的参与。这种技术能够大大降低CPU的开销,并提高数据传输的效率。UCMA则是指用户空间的连接管理器访问,它是RDMA在用户空间的一个接口。

2024-03-07 07:24:49 376

原创 5.48 BCC工具之pidpersec.py解读

pidpersec工具会显示每秒创建的新进程数,通过跟踪内核fork()函数来统计。

2024-03-06 07:24:10 314

原创 5.47 BCC工具之oomkill.py解读

oomkill工具用于跟踪 Linux 的内存溢出(OOM)查杀,并在每行显示一个 OOM 杀死的基本详细信息。

2024-03-06 07:23:34 175

收发彩信,自动打开数据连接

两个文件分别为在源码基础上进行修改后的文件,主要用于解决关闭数据连接后无法收发彩信

2014-07-07

视图缩放案例

这个小案例是主要用来演示一下如何点击一个图片按钮,对缩略图进行缩放操作。

2014-07-07

app之间交互(ComponentName)

这里简单介绍了以一下如何使用ComponentName来帮助我们实现App之间的交互

2014-07-03

版本控制器git-1.9.4(msysgit Windows版)

这里为大家提供了当前最新版本的msysgit版本控制器

2014-06-28

Android中app之间的交互

这里简单介绍了,不同app之间如何使用隐式intent进行交互

2014-06-27

Fragment与Activity使用接口进行交互

这里简单介绍了如何使用接口,来使fragment发送消息给activity

2014-06-27

Fragment与Activity使用Bundle传递数据

这里简单描述了以下Activity使用Bundle向Fragment传递数据

2014-06-27

Fragment与Activity使用Handler进行交互

这里简单介绍了Fragment和Activity使用Handler方式进行交互。

2014-06-27

实现TextView自由复制

自己参照Android系统源码中短信模块中代码,写了一个Demo程序实现TextView的自由复制,共享给大家参考。

2014-06-26

android手机USB驱动

用以android手机链接电脑用的USB驱动程序

2013-01-12

毕业设计-VC职工工资管理系统

这是一款毕业设计源程序和论文,希望能对大家的毕业设计有所帮助。

2013-01-12

毕业设计-( ASP精品课程网站

这是一款毕业设计源程序和论文,希望能对大家的毕业设计有所帮助。

2013-01-12

Asp电子商务网站

希望能对大家的毕业设计有所帮助,至少能起到一个参考资料,希望大家都能过关啦。

2013-01-12

andricoFacebook客户端

这是一款模仿andricoFacebook客户端的源程序代码

2013-01-11

Baidu_map(百度地图)Android平台开发指南文档

这是为android开发者在使用百度地图开放的api时,需要参考的开发指南文档

2013-01-10

android电子商城(客户端+服务器)

这是一个电子商城的android源代码,其中包括客户端和服务器,经过测试。希望能对初学者有所帮助。

2013-01-08

微博客户端源代码

这是一个关于微博客户端开发的源程序,对于初学者来说是一个易于模仿的案例,对初学者来说很有帮助,贵在模仿

2013-01-08

Android的一个仿酷狗播放器的应用程序源码

一个仿酷狗播放器的音乐播放器源码,对于初学者来说是一个很好的模仿例子

2013-01-03

p2p终结者局域网软件

想在局域网里游刃有余吗?下载来使用使用知道了。

2012-12-06

android工程师面试内部题

想转行做安卓的同志们,面试有这个,offer就不是问题了。

2012-12-06

pageowner 解析工具

该工具组合可以对pageowner进行不同维度的解析,包括下面3各方面: 1.通过关键函数对pageowner进行解析、统计,最终以进程级展示进程的cma内存使用情况,并通过占用size自动排序。 2.该工具可用于分拆pageowner信息,并以进程和线程进行分别拆分,用于更细力度的pageowner拆分。 3.该工具用于解析整个pageowner中各个进程的内存使用情况 解析工具的开发是为了在我们拆分内存布局的时候能够提高效率,不容易出错,达到事半功倍的效果。 在使用过程中,遇到任何问题,都可以免费提供支持。

2022-05-13

linux_kernel_config 中文手册(2.6.28)

linux_kernel_config 中文手册(2.6.28)

2022-04-30

opengrok-1.7.30.tar.gz

opengrok-1.7.30.tar.gz

2022-03-27

syslinux-6.03.tar.xz

syslinux-6.03.tar.xz

2022-03-27

jdk-11.0.14_linux-x64_bin.deb

jdk-11.0.14_linux-x64_bin.deb

2022-03-27

busybox-1.35.0.tar.bz2

busybox-1.35.0.tar.bz2

2022-03-27

高度精简LinuxOS

自定义打包的LinuxOS,该OS只有10M左右,仅包含LinuxKernel+Busybox;

2022-03-26

车载SOA软件架构技术规范

车载SOA软件架构技术规范

2022-03-20

ardupilot-master.zip开源固件源码

ardupilot-master.zip开源固件源码

2022-02-07

MP Mission Planner 飞控地面控制站

MP Mission Planner 飞控地面控制站

2022-01-29

helloworld.zip

HelloWorld

2021-05-11

SELinux4AndroidO

该文档包含如下: m4.pdf/configuring-selinux-policy-report.pdf/implementing-selinux-as-linux-security-module-report.pdf/The_SELinux_Notebook-4th_Edition.pdf/SEAndroid-NDSS2013.pdf/abs2014_seforandroid_smalley.pdf/SELinux_Treble.pdf

2018-02-05

recovery_l10n

这是Google官方发布的一款工具,用来合成recovery模式下文本本地化显示的工具,我已经编译成功,源码也一起上传了,有兴趣的同学可以下载下来研究一下!

2015-04-10

apktool+smali2java

apktool+smali2java方式反编译

2015-03-18

recovery下edify介绍

这个文件是有关edify脚本的一个简单介绍,是从源码中直接复制下来的

2015-02-13

解决彩信gif格式图附件不能正常播放

解决添加gif格式图片为彩信附件,预览不能正常播放,原因为图片由于超出附件大小限制而被压缩

2014-07-26

解决Android4.3彩信幻灯片中gif格式图片不能正常播放

本代码包解决了在Android4.3中MMS模块中添加幻灯片附件,在预览幻灯片的时候,gif格式图片不能够正常播放

2014-07-26

Android4.3系统内置音乐播放器

这是从android4.3中的源码抽取出来的,而且编译运行成功,有兴趣的朋友可以拿来研究一下。

2014-07-11

模仿Android4.3版本短信设置功能

在Android系统源码中所有应用的设置界面都使用preference,该资源源码是模仿短信app中设置界面的UI和部分功能。

2014-07-11

SmartTools

这个小工具可以自动帮助我们插入短信,通话记录,联系人,浏览器书签

2014-07-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除