avatar
文章
876
标签
85
分类
13
首页
归档
标签
友链
代表作品
量化套利
关于
TagoTago开发手记
搜索
首页
归档
标签
友链
代表作品
量化套利
关于

Tago · 开发手记

Swoole 服务下发现 Core 大文件问题解析
发表于2019-08-21|踩坑教训
在使用 Swoole 开发的服务中,如果发现 core dump 文件(通常名为 core 或 core.<pid>)变得异常大,可能会引发性能问题或存储空间不足。以下是关于该问题的解析及解决方案。 1. Core Dump 文件概述Core dump 文件是进程在异常终止时生成的内存快照。这种文件包含了进程的内存状态、调用栈、寄存器和其他调试信息,通常用于故障排查。 2. Core Dump 文件产生的原因2.1 代码异常 未捕获的异常:如果代码中存在未捕获的异常,可能导致进程崩溃。 错误的内存访问:访问已释放的内存或越界访问数组等,会导致进程崩溃。 2.2 资源耗尽 内存泄漏:长时间运行后,内存未释放,导致资源耗尽,最终使进程崩溃。 文件句柄或网络连接耗尽:如果打开的文件句柄或网络连接数超出系统限制,也可能导致进程崩溃。 2.3 外部因素 操作系统信号:如 SIGSEGV(段错误)、SIGABRT(强制终止)等信号会导致进程生成 core dump。 3. 解决方案3.1 代码审查 异常处理:确保代码中有适当的异常处理机制,使用 try-catch 语句...
curl 查询公网出口IP
发表于2019-08-11|编程语言
curl查询公网出口IP # curl ipinfo.io{ "ip": "124.100.2.311", "hostname": "No Hostname", "city": "Beijing", "region": "Beijing Shi", "country": "CN", "loc": "39.9289,116.3883", "org": "AS4808 CNCGROUP IP network China169 Beijing Province Network"}% # curl ip.cn当前 IP:124.100.2.311 来自:北京市 广东xx北京分公司 # curl cip.ccIP : 124.100.2.311地址 : 中国 北京市数...
PHP 抛错 `read error on connection` 问题解析与解决
发表于2019-08-02|踩坑教训
在使用 PHP 进行网络操作(如数据库连接、HTTP 请求等)时,可能会遇到 read error on connection 的错误。这种错误通常表示在读取数据时连接出现了问题。以下是该问题的常见原因及解决方案。 1. 常见原因1.1 网络问题网络不稳定或中断可能导致连接被重置或关闭,进而引发读取错误。 1.2 服务器端问题服务器端可能由于负载过高、资源耗尽或配置错误等原因关闭了连接。 1.3 超时设置如果请求或操作的超时时间设置得过短,可能会在未完成的情况下触发读取错误。 1.4 SSL/TLS 问题在通过 HTTPS 进行连接时,如果 SSL/TLS 配置不正确,可能会导致读取错误。 2. 解决方案2.1 检查网络连接确保您的网络连接正常,可以通过 ping 命令检查服务器的可达性: ping your-server.com 2.2 增加超时设置在进行数据库连接或 HTTP 请求时,适当增加超时时间。例如,在使用 cURL 时,可以设置超时时间: $curl = curl_init();curl_setopt($curl, CURLOPT_URL,...
`tail -f` 报错 `file truncated` 问题解析与解决
发表于2019-07-25|踩坑教训
在使用 tail -f 命令监视文件内容时,可能会遇到 file truncated 的错误。这通常表示文件被截断或重新创建,导致 tail 无法继续监视该文件。以下是该问题的常见原因及解决方案。 1. 常见原因1.1 文件被截断某些应用程序(如日志记录服务)在写入文件时可能会截断文件。例如,使用 logrotate 工具时,会将日志文件移动并创建一个新文件,导致原文件的内容丢失。 1.2 文件被删除并重新创建如果文件被删除后再创建(即使是同名文件),tail -f 也会报告 file truncated 错误。 1.3 文件系统问题在某些情况下,文件系统问题或网络挂载(如 NFS)可能导致文件状态不一致。 2. 解决方案2.1 使用 tail -F 命令与 tail -f 不同,tail -F 可以自动跟踪被截断或重新创建的文件。它会在文件被截断时继续监视新的文件内容。使用方法如下: tail -F /path/to/your/file.log 2.2 检查文件状态在遇到 file truncated 错误时,可以检查文件的状态: ls -l /path/to/your/...
Swoole 抛错 onTimeout handler error 问题解析与解决
发表于2019-07-20|编程语言踩坑教训
在使用 Swoole 开发高性能网络应用时,可能会遇到 onTimeout handler error 的错误。这通常与定时任务或异步操作的超时处理有关。以下是该错误的常见原因及解决方案。 1. 错误背景Swoole 提供了定时器和协程的超时机制。当某个任务超时未能完成,Swoole 会抛出 onTimeout handler error 错误。如果没有正确处理超时,可能会导致应用的异常行为或不稳定性。 2. 常见原因2.1 超时处理逻辑错误如果在 onTimeout 回调中出现了未捕获的异常或错误,例如在尝试访问一个已经被销毁的对象,可能会导致该错误。 2.2 回调函数未定义如果设置的超时回调函数不存在或未能正确调用,也会导致此错误。 2.3 资源争用在高并发环境中,如果某些资源(如数据库连接、文件句柄等)被争用,可能会导致超时,进而触发错误。 3. 解决方案3.1 捕获异常在 onTimeout 回调中,确保捕获所有可能的异常。可以使用 try-catch 语句来处理。 $server->set([ 'task_worker_num' =&...
Composer require 提速
发表于2019-07-14|其他
在使用 Composer 进行依赖管理时,安装和更新依赖的速度有时可能会比较慢。以下是一些优化 Composer require 操作以提高速度的技巧。 1. 使用 Composer 镜像使用国内的 Composer 镜像可以显著提高下载速度。以下是一些常用的镜像源: 1.1 设置 Composer 镜像可以通过修改 Composer 配置文件来使用镜像: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 1.2 其他镜像 中国科技大学: https://mirrors.ustc.edu.cn/composer/ 华为云: https://mirrors.huaweicloud.com/repository/toolbox/composer/ 2. 使用 --prefer-dist 选项使用 --prefer-dist 选项可以让 Composer 优先下载压缩包,而不是从代码库克隆,这通常会更快: composer require vendor/package ...
MySQL 锁等待超时(1205 ER_LOCK_WAIT_TIMEOUT)问题解析与解决
发表于2019-07-11|数据库
在 MySQL 中,错误代码 1205 表示“锁等待超时”(ER_LOCK_WAIT_TIMEOUT),通常发生在一个事务等待获取锁时,但超出了 innodb_lock_wait_timeout 参数设置的时间限制。这种情况常常导致数据库操作失败,影响应用性能。 1. 锁等待超时的常见原因1.1 长事务如果有一个事务在持有锁的情况下运行时间过长,其他事务就可能在等待该锁释放,最终导致超时。 1.2 死锁多个事务相互等待对方持有的锁,形成死锁。这种情况下,MySQL 会自动检测并中止其中一个事务,但也可能会导致锁等待超时。 1.3 错误的锁策略使用了不合适的锁策略,比如在需要锁定的表上执行了不必要的全表扫描,导致其他事务无法获得锁。 2. 锁等待超时的处理方法2.1 调整超时设置如果适用,可以增加 innodb_lock_wait_timeout 的值: SET GLOBAL innodb_lock_wait_timeout = 120; -- 设置为 120 秒 2.2 优化事务 减少事务的持续时间:确保事务尽快完成,尽量减少锁的持有时间。 分拆大事务:将大事务分解为小事务...
X-Forwarded-For IP伪造问题处理
发表于2019-07-05|踩坑教训协议
这个文章放在云笔记里面半年多了, 出现问题场景是我们从 `迁移至 阿里云` 之后;优化 api服务 发现有大量用户通过 X-Forwarded-For 仿造客户端IP 从而跨过我们后端对IP做的频率限制. 原理很简单 一般公司服务器都是 在服务最前端放 slb/lvs 这种负载均衡服务, 用户请求的IP 插入 X-Forwarded-For 前面 我们使用加速通道 多层的代理 ; 后端按照如下顺序获取客户端的真实IP HTTP_ALI_CDN_REAL_IP;HTTP_CF_CONNECTING_IP;HTTP_X_CONNECTING_IP;XXXX_Client_IP;USER_REAL_IP; (通过nodejs 将用户的真实ip 透传给用户中心内网) 上述变量详解HTTP_ALI_CDN_REAL_IP链路配置了阿里云CDN,则阿里云CDN会传递此变量给后端,变量内的值就是客户端的真实IP地址。HTTP_CF_CONNECTING_IP如上,该值是cloudflare提供的客户端真实IP地址。HTTP_X_CONNECTING_IP如上,该值是加速乐提供的客户端真实...
左右值无限分类 预排序遍历树算法:modified preorder tree traversal algorithm
发表于2019-07-01|其他
修改后的前序树遍历算法(Modified Preorder Tree Traversal)无限分类树(Nested Set Model)是一种用于表示层次结构数据的有效方法。在这种模型中,每个节点都有左右值(left, right),可以用于快速查询树的结构。使用修改后的前序遍历算法可以方便地构建和遍历这种树形结构。 1. 树的结构在无限分类树中,每个节点都有两个额外的字段:left 和 right。这些字段用于表示节点在树中的位置。通过这些值,可以很容易地获取节点的层级关系和子节点。 例子假设有以下树结构: A├── B│ ├── D│ └── E└── C └── F 对应的左右值可能如下: NodeLeftRightA110B25D34E67C89F1112 2. 构建树的算法2.1 修改后的前序遍历算法以下是一个简单的算法,用于通过修改后的前序遍历构建无限分类树。 class Node { public $id; public $left; public $right; public $children = []; ...
PHP CSV 配置转换为 SQL 的示例
发表于2019-06-28|编程语言
将 CSV 文件转换为 SQL 插入语句是一项常见的任务。以下是一个简单的 PHP 示例,演示如何读取 CSV 文件并生成 SQL 插入语句。 1. CSV 文件格式假设我们有一个名为 data.csv 的文件,内容如下: id,name,age1,John Doe,302,Alice Smith,253,Bob Johnson,22 2. PHP 脚本示例以下是一个 PHP 脚本,它将读取上述 CSV 文件并生成 SQL 插入语句。 <?php// CSV 文件路径$csvFile = 'data.csv';// 数据库表名$tableName = 'users';// 打开 CSV 文件if (($handle = fopen($csvFile, 'r')) !== FALSE) { // 读取表头 $headers = fgetcsv($handle); // 初始化 SQL 语句数组 $sqlStatements = []; // 遍历每一行数据 ...
1…495051…88
avatar
Leon
技术、实践与记录
文章
876
标签
85
分类
13
公告
记录技术实践,分享学习与思考。
最新文章
Okx合约量化套利开发心得
Okx合约量化套利开发心得2026-10-08
币安衍生品与 TradFi 业务全景
币安衍生品与 TradFi 业务全景2026-10-04
币安指数玩法拆解
币安指数玩法拆解2026-10-03
币安外汇玩法拆解
币安外汇玩法拆解2026-10-03
币安大宗商品玩法拆解
币安大宗商品玩法拆解2026-10-03
最新评论
加载中...
分类
  • Ai9
  • Nginx44
  • 产品16
  • 其他54
  • 协议69
  • 容器13
  • 技术1
  • 操作系统112
标签
kali VM NVDA websocket 做市 Tcp ClickHouse jwt 需求优先级 ssl 币安 swoole 代理 golang 网络安全 跨域 埋点 交互设计 AES Docker 量化理财 产品基础 php 用户体验 protobuf linux 代币化股票 股票代币化 yum 金融交易 WebAuthn TradFi 导航设计 shell centos oa 正则 vim 指数 curl
归档
  • 十月 2026 5
  • 九月 2026 5
  • 八月 2026 13
  • 七月 2026 7
  • 六月 2026 4
  • 五月 2026 5
  • 四月 2026 10
  • 三月 2026 6
网站信息
文章数目 :
876
运行时间 :
最后更新时间 :
© 2015 - 2026 By Leon框架 Hexo 8.1.2|主题 Butterfly 5.7.0
Tago · 开发手记
搜索
数据加载中