5 lotluck

尚未进行身份认证

我会成为你的眼睛,为你看清未来

等级
TA的排名 9k+

记录一次采坑--如何处理Linux动态库同名函数?

一、背景介绍需求描述:业务提供一个鉴权的静态库,我只需要从url和参数中提取相应的参数传给业务的静态库,将静态库的处理结果直接返回给业务(return<0,直接返回403)。但是最近业务反馈,请求部分url直接返回Error:-1015错误,不符合预期。二、分析过程业务刚开始反馈问题,我的第一反应:怎么可能是我的问题,我就仅仅写了一个so(暂时命名1.so),直接调用了你...

2019-07-26 20:40:55

高CPU问题----eth0: NIC Link is Down网卡故障导致高CPU

一、现象:cpu异常飙升(这台机器的eth0网卡在2018年12月的时候就出现问题)二、分析发现:1.dmesg[ThuMar1401:02:002019]ixgbe0000:02:00.0eth0:NICLinkisDown[ThuMar1401:02:042019]ixgbe0000:02:00.0eth0:NICLin...

2019-03-23 16:04:57

Linux创造固定的文件大小-预分配磁盘空间

一、课前预习写本篇文章的目的很简单,防止采坑、防止采坑、防止采坑我们在开发程序的过程中,往往需要预分配磁盘空间,防止因磁盘空间不够而引发程序异常问题(已踩过坑),现网查阅资料,有些预分配磁盘空间的方法不正确,在这里特别记录一下,除此之外,把正确的预分配的方法和大家分享一下,如果其他人有建议,欢迎拍砖狠砸二、假:磁盘预分配—ftruncate1.使用lseek、ftruncate到一个...

2018-10-25 16:05:04

mmap其实并没有那么好

现网问题关于mmap的基本操作自行google去吧,一抓一大把,99%基本上夸mmap是有多好多快,mmap快是因为建立了页到用户进程的虚拟空间映射,以读取文件为例,避免了页从内核态拷贝到用户态,少了一次拷贝,而且在内存中操作,从这个层面看,mmap是屌屌的。但是在现网使用,mmap带来很多问题。图一:内存吃紧,swap也是关闭,该进程使用内存状况图二:该进程mm...

2018-08-13 16:18:39

我把Linux系统上面误删的数据找回来了

我把Linux系统上面误删的数据找回来了一、背景突发事件,应用上传的数据被程序自动删掉了,可悲的是还没有数据备份,数据是放在系统的/data/webapps/xxxx/upload目录下面,可把我们急坏了,之前又没有做过数据恢复的测试,然后我找到了一款数据恢复的软件,成功把删除的大部分数据找回来了,我的数据恢复过程如下。二、安装恢复软件1、epel仓库安装...

2018-04-12 14:58:36

Latency numbers every programmer should know

LatencynumberseveryprogrammershouldknowLatencynumberseveryprogrammershouldknowL1cachereference.........................0.5nsBranchmispredict............................5nsL2c...

2018-04-12 11:01:14

tcpdump提取源IP

需求:使用tcpcopy复制现网到测试机器,但是测试机器并不知道导入流量的OC机器IP是多少查询tcpdump的参数,然而并没有参数可以直接提取源IP。于是采用了比较土的办法,按部就班的提取tcpdump抓包过滤出源IPtcpdump-ieth0port36524-nn-c50002>/dev/null|awk'{print$3}'|awk-F'....

2018-04-08 15:12:37

tcpdump只抓取HTTP报文头部

因为要做一个需求,我需要调研现网请求http头部的大小,都有什么字段,shell脚本代码如下所示#!/bin/bashs_512=0s_512_1k=0s_1k_2k=0s_2k_4k=0s_4k_8k=0s_8k=0idx=0whiletruedoif(($idx>=10000));thenbreakfi...

2018-04-02 23:39:21

简单计算磁盘平均IO

如果有多个磁盘,计算的时候就需要计算平均值,显然直接利用linux的iostat的命令不能完成这个需求,下面是个简单的计算磁盘相关平均指标的脚本#!/bin/bash#iostat-x12>1.txt#sed-i'1,22'd1.txt#$1isfilenamefile_name=$1grep-E"(sd)[b-m]"$file_...

2018-04-02 14:33:10

FLV格式解析及其解析器的实现

一、FLV基础入门最近在搞flv解析器,网站看到一些比较好的基础入门资料,直接搬过来了FLV文件格式详解FLV文件格式解析FLV封装原理flv文件元信息(metadata)FLV文件结构解析其实看这么多资料还不如下载一个flv解析器(flvparse)直接看里面的格式,heard、tag应有尽有,一目了然二、FLV解析器实现在对flv格式清楚的基础上,就...

2018-02-26 10:57:56

采坑 uint32_t 和 uint64_t

uint32_t和uint64_t混用,超出uint32_t的范围,结果导致计算错误。。。#defineINNER_TANK_NODE_INFO_LEN8192sata_node_info_num_=chunk_num_+big_chunk_num_;chunk_base_addr_size_=sata_node_info_num_*INNER_TANK_NODE

2018-01-22 17:08:51

清理cache sync && drop_caches

问题描述在linux上用iostat观察磁盘的时候,发现sda周期性的出现毛刺最后调查原因发现是因为cache的原因,linux会集中写入sda,导致毛刺\color{red}{因为cache的原因,linux会集中写入sda,导致毛刺}解决办法周期性的执行下面两个命令,让日志不集中写入sda就可以,时间自己把握[root@ying]#sync[root@ying

2018-01-17 16:54:37

linux pmap

pmap查看某个进程的内存使用情况最核心就是最后一句:mapped:23344Kwriteable/private:1280Kshared:4K\color{red}{mapped:23344Kwriteable/private:1280Kshared:4K}mapped表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz\col

2018-01-17 11:29:24

Transfer-Encoding 和Content-Encoding

Transfer-Encoding:chunked分块编码,对应Content-Length计算实体长度。有的时候服务器发送的数据并没有具体的长度,这是时候就需要chunked分块编码Content-Encoding:gzip内容编码,很多网站都使用了gzip压缩,这样使传输的数据量减少了3/4,但是一般图片不建议压缩,因为图片都是压缩过的Content-Encoding和Trans

2017-12-26 21:28:20

字符数组md5[4]转换成uint32_t的无符号整数转化?

一个unsignedcharmd5[4]数组转成uint32_t的无符号整数转化其实也很简单,只要清楚内存的分布结构就没有问题linux内存是由高地址到低地址的,对于md5[4]和inta的分布就是这样子的,md5数组占用4个字节,int也占用4个字节,char数组转成int数组的时候,就是从char数组的末尾开始的,一张图看懂看不懂就看造化了#include<stdint.h>intma

2017-12-25 16:50:41

软件开发流程

一、需求           1.1需求的定义               简单而言需求就是完成相应的功能           1.2需求的评估                一般而言,当被提出有需求的时候,应该认真评估分析一下需求到底能不能做,很多需求都含有暗坑,评估不好,后面的事情就非常麻烦。为了不让自己麻烦,对于评估后认为不合理的需求,应该及时的砍掉。对于合理的需

2017-12-18 13:03:08

ofstream和ifstream详细用法

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<)  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"WriteStdout"<<'\n';就表示把字符串"WriteStdout"和换行字符('\n')输出到标准输出流。2、析取器(>>) 

2017-12-14 16:01:10

内嵌汇编 - cmpxchgl 指令学习笔记

一、背景又是关于汇编,头真是大,当年欠吴旭老师的汇编终究还是要还的。在看nws源码的时候,里面有这样一段代码static__inline__unsignedlongatomic_cmp_set(volatilevoid*ptr,unsignedlongold,unsignedlongset){unsignedl

2017-12-13 16:35:14

overflow in implicit constant conversion

被女朋友问了一个很简单的问题,刚开始还以为是编译器的锅么,根本是非法吗?但是非法之后的运行结果呢?当时竟然没有想懂,亲自操刀尝试了下,下面意思应该很明确了

2017-11-14 21:42:24

HTTP中的Range: bytes=0-

HTTP中的Range就是分段请求字节数,也是大家经常说的断点续传。Range头域可以请求实体的一个或者多个子范围,Range的值为0表示第一个字节,也就是Range计算字节数是从0开始的表示第二个500字节:bytes=500-999表示最后500个字节:bytes=-500表示500字节以后的范围:bytes=500-第一个和最后一个字节:bytes=0-0,-1同时指定几个范围:byt

2017-11-09 10:13:07

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!