watchdog

043. 基于 VIP 的 Keepalived 高可用架构讲解

霸气de小男生 提交于 2020-08-19 19:18:44
1. Keepalived 简介 1. keepalived 的作用 Keepalived 的作用是检测服务器的状态。如果有一台 web 服务器宕机,或工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后 Keepalived 自动将服务器加载到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。 2. Keepalived 的特性 配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能。 稳定性强:keepalived 是一个类似于 layer3/4/7 交换机机制的软件,具备我们平时说的第 3 层、第 4 层和第 7 层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。 成本低廉:开源软件,可直接下载配置使用,没有额外费用。 应用范围广:因为 keepalived 可应用在多个层面,所以它几乎可以对所有应用做高可用,包括 LVS、数据库、http 服务、nginx 负载均衡等等。 支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择。 2. Keepalived 工作原理 1. Keepalived 内部工作分为以下几个部分 WatchDog 监控 checkers 和 VRRP

uboot的WATCHDOG_RESET()执行路径

江枫思渺然 提交于 2020-08-16 10:58:42
执行路径如下: init_sequence_r[] -> initr_watchdog() -> wdt_start(): include/wdt.h (default 60 second) -> INIT_FUNC_WATCHDOG_RESET (common/board_r.c) -> init_func_watchdog_reset() -> WATCHDOG_RESET() -> watchdog_reset() : drivers/watchdog/wdt-uclass.c -> get_timer() -> wdt_reset() -> ops->reset() -> -> WATCHDOG_RESET(): drivers/serial/serial-uclass.c -> xxxxx_tstc(): (串口驱动里会调用此接口,如使用的pl010串口,那么源码在driver/serial/serial_p101x.c中) 来源: oschina 链接: https://my.oschina.net/u/4324904/blog/4302188

异常原理

北慕城南 提交于 2020-08-14 12:00:01
Watchdog 是一个运行在 ssystem_server 进程中的 watchdog 线程 用于检测核心系统服务和主要线程是否处于Blocked 状态 方法是一般线程超时一分钟,则输出trace 信息 public static final String[] NATIVE_STACKS_OF_INTEREST = new String[] { "/system/bin/mediaserver", "/system/bin/sdcard", "/system/bin/surfaceflinger" }; ANR异常 输入事件5s 未响应 服务二十秒未处理完成 广播十秒未处理完成 来源: oschina 链接: https://my.oschina.net/u/4590274/blog/4444922

[译]理解 iOS 异常类型

自作多情 提交于 2020-08-12 23:57:33
原文链接: Understanding iOS Exception Types (PS.由于未知原因已失效,经检查,文章中引用的链接都还有效 :) 翻译:CoderWangx 当你的iOS应用崩溃的时候,我们需要去分析 异常日志 以定位根本原因。崩溃可能是 “低内存崩溃 Low Memory Crash ” 或者 “普通异常崩溃”。当碰到“异常”时,更好的理解“不同类型的异常”能够真正帮助我们快速定位问题所在。 在这篇文章中,我们将研究 iOS 应用可能碰到的不同类型的“异常”,例如 EXC_CRASH 、 EXC_BAD_ACCESS 、 EXC_RESOURCE 、 00000020 等。 崩溃日志中的“异常” “异常”这个词在“崩溃日志”语境下更多与“Mach 异常”(以“ EXC_ 为前缀”)和 “ UNIX 信号 ”(如: SIGSEGV , SIGBUS 等)相关。在某些情况下(应该是有对应的dSYM符号文件时)系统会通过映射将底层的 Mach 异常 翻译为 UNIX 信号 。这就是为什么你能log中看到有用 “EXC_CRASH(SIGABRT)” 及 “EXC_BAC_ACCESS(SIGSEGV)” 作为 异常类型(Exception Type) 。 对于某些异常,还会附带一个关联的 处理器定制异常码(processor-specific Exception

带你打造一套 APM 监控系统 之 卡顿监控

六月ゝ 毕业季﹏ 提交于 2020-08-12 05:11:25
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨杭城小刘 来源公众号丨知识小集(zsxjtip) https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter1%20-%20iOS/1.74.md APM 是 Application Performance Monitoring 的缩写,监视和管理软件应用程序的性能和可用性。应用性能管理对一个应用的持续稳定运行至关重要。所以这篇文章就从一个 iOS App 的性能管理的纬度谈谈如何精确监控以及数据如何上报等技术点 App 的性能问题是影响用户体验的重要因素之一。性能问题主要包含:Crash、网络请求错误或者超时、UI 响应速度慢、主线程卡顿、CPU 和内存使用率高、耗电量大等等。大多数的问题原因在于开发者错误地使用了线程锁、系统函数、编程规范问题、数据结构等等。解决问题的关键在于尽早的发现和定位问题。 本系列文章着重总结了 APM 的原因以及如何收集数据。APM 数据收集后结合数据上报机制,按照一定策略上传数据到服务端。服务端消费这些信息并产出报告。请结合姊妹篇, 总结了如何打造一款灵活可配置、功能强大的数据上报组件。 我们先从卡顿问题讲起。 卡顿问题

Linux命令之top命令介绍

穿精又带淫゛_ 提交于 2020-08-10 11:59:07
Linux命令之top命令介绍 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定 1. 命令格式: top [参数] 2. 命令功能: 显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等 3. 命令参数: -b 批处理 - c 显示完整的触发命令(即commont字段内容的切换,貌似显示为请求类型与完整的该进程的触发命令行内容之间切换) 显示整个命令行而不只是显示命令名,这里指的是command字段的列信息,将显示完整的开启该进程的命令行的信息。 开启前:mysqld,开启后:/usr/libexec/mysqld --basedir=/usr --datadir=/newdata/mysqldata --user=mysql --log -I 忽略失效过程 -s 保密模式。 -S 累积模式。 -i<时间>

python中文件变化监控-watchdog

99封情书 提交于 2020-08-09 21:34:41
起步 在python中文件监控主要有两个库,一个是 pyinotify ,一个是 watchdog 。pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装。因为我主要用于Windows平台,所以下面着重介绍watchdog(推荐大家阅读一下watchdog实现源码,有利于深刻的理解其中的原理)。 watchdog在不同的平台使用不同的方法进行文件检测。在init.py中发现了如下注释: |Inotify| Linux 2.6.13+ ``inotify(7)`` based observer |FSEvents| Mac OS X FSEvents based observer |Kqueue| Mac OS X and BSD with kqueue(2) ``kqueue(2)`` based observer |WinApi|(ReadDirectoryChangesW) MS Windows Windows API-based observer |Polling| Any fallback implementation 给出示例代码如下: #!/usr/bin/env python # -*- coding:utf-8 -*- # Created by victor # 本模块的功能:<检测文件夹变化> #

SOM-TL5728 AM5728双核ARM Cortex-A15 +浮点双核DSP C66x处理器设计的工业级核心板

核能气质少年 提交于 2020-08-09 06:47:02
创龙SOM-TL5728是一款基于TI Sitara系列AM5728双核ARM Cortex-A15 +浮点双核DSP C66x处理器设计的高端异构多核SoC工业级核心板。通过工业级高速B2B连接器引出千兆网口、PCIe、USB 3.0、GPMC、SATA、HDMI等接口。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。 用户使用核心板进行二次开发时,仅需专注上层运用,降低了开发难度和时间成本,可快速进行产品方案评估与技术预研。 图 1核心板硬件框图 图 2 AM572x处理器功能框图 硬件参数 表 1 CPU CPU:TI Sitara AM5728 2x ARM Cortex-A15,主频1.5GHz 2x DSP C66x,主频750MHz,支持浮点运算 2x IPU(Image Processing Unit),每个IPU子系统含2个ARM Cortex-M4核心,共4个ARM Cortex-M4 核心 2x PRU-ICSS,每个PRU-ICSS子系统含2个PRU(Programmable Real-time Unit)核心,共4个PRU核心,支持EtherCAT等协议 1x IVA-HD Video Codec,支持1路1080P60 H.264视频硬件编解码 2x SGX544 3D GPU图形加速器 1x GC320

Boot | 手把手教你写BootLoader

不打扰是莪最后的温柔 提交于 2020-07-28 09:42:05
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。这段说人话意思就是: 工程中不会将JTAG等烧录口引出但是一定有一个对外的通信口我们升级程序时就可以利用可操作的通信接口把要升级的程序文件发送到芯片再擦写到对应地址的内存中,这样就实现了程序升级。 熊猫大概去年这个时候写的BootLoader工程(以下简称boot),最近正好被朋友问起发现好多细节已经记不清,就赶快写一篇关于boot专题加深记忆也把思路提供给大家。 概 述 针对飞思卡尔的MC9S12XET256芯片(熟悉吗?BMS最老的基础平台MCU)开发了下位机部分,上位机部分软件。上位机软件用的VS平台,语言是C#,下位机用的CW5.1,下载工具是USBCAN-2E-U。 目前一共有三种思路启动boot: 特殊硬件管脚:复位上电之后通过判断PP0管脚输入电平状态判断进入APP还是boot,PP0默认上拉高电平进入APP如果要进入boot则需要复位时按下按键,这种方式用作调试可以但是实际工程中我们根本没有条件操作按键,所以不推荐; 上电进入延时退出:每次上下电复位都先进去boot模式然后等待升级通信指令,如果收到升级指令则开始升级,反之延时耗完进入APP

创龙Xilinx Zynq-7000系列XC7Z035/XC7Z045/XC7Z100高性能SoC处理器评估板Watchdog接口

北城以北 提交于 2020-07-24 19:43:39
CPU CPU为 Xilinx Zynq-7000 SOC,兼容XC7Z0 35 /XC7Z0 45 /XC7Z 100 ,平台升级能力强,以下为 Xilinx Zynq-7000 特性参数: 创龙 TL Z7xH-EVM 是一款基于 Xilinx Zynq-7000系列 XC7Z0 35 / XC7Z0 45 / XC7Z100 高性能 SoC 处理器 设计的高端评估板, 处理器集成PS端双核ARM Cortex-A9 + PL端 Kintex -7架构2 8nm 可编程逻辑资源, 由核心板 与底板组成 。 Watch dog接口 Watchdog接口, 3pin,间距2.54mm,通过跳线帽配置。其引脚定义如下图: 来源: oschina 链接: https://my.oschina.net/u/4169033/blog/4290233