自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(61)
  • 收藏
  • 关注

转载 map使用不当导致cpu暴涨

上线新功能导致服务器cpu暴涨。经分析为map assign过于频繁,导致频繁的内存malloc与memorymove,耗尽cpu。使用go tool定位过程记录1. 获取进程内函数执行统计 go tool pprofhttp://10.139.252.109:9360/debug/pprof/profile top10的函数如下: 2. runt...

2016-10-11 16:36:00 676

转载 tcp不同场景下的关闭分析

tcp的关闭可以分为两大类场景一、socket主动close,或在socket没有close的情况下进程exit退出,或kill -9强制关掉进程( kill掉进程时,内核会清理掉文件描述符(包括socket描述符 ))这3种场景都可以看做同一种情况。具体又可以分为两种情况如果发送缓冲区或接收缓冲区任然有数据未发送或未接收,则会发rst包给对端,对端收到后不回应直接关闭连...

2016-09-07 20:30:00 183

转载 tcp SACK选择确认位

场景考虑一个场景,tcp发动端连续发送了4个包1-200,201-300,301-400,401-500. 接收端接收了1-200, 201-300,401-500。由于301-400没有收到,所以接收端只能发送一个ack 301给发送端,以确认1-300都收到,而401-500无法给发送端确认。这时发送端不知道301-400和401-500这两个包是否到达接收端。解决办法...

2016-09-07 13:27:00 389

转载 timeout的一些常规解决办法

一般来说timeout并不会对服务器造成什么大的影响,但如果timeout过多导致进程文件描述符不够用或服务器端口不够用就需要注意了。下面是一些常规的timeout解决办法。注意:不是长久之计/etc/sysctl.conf net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;(安...

2016-08-24 15:07:00 3488

转载 http长连接的一些点

http短连接,一般是服务器端主动关闭连接(历史原因 https://www.zhihu.com/question/24338653)http 请求header头中通过Connection: 头字段来指定是否需要keep-alive。 其中http1.0和http1.1关于Connection头又有不同点http1.0不支持keepalive,所以发送头为Connection...

2016-08-24 15:04:00 83

转载 梦想

50岁之前走一遍丝绸之路,体验东西历史文化交流中的物是人非去一趟中东,踏上人类文明的起源地。感受古文明的征服与被征服,文化的传播与互相影响。路线-》波斯-伊拉克-叙利亚-埃及-突尼斯-希腊-意大利待续转载于:https://www.cnblogs.com/traxex/p/5802867.html...

2016-08-24 14:35:00 84

转载 socket 连接复位情况

在如下几种情况会产生连接复位 1. 在另一端已经关闭连接的情况下,本端还往这个连接上(fd)读写数据2. 一端奔溃并重新启动,另一端过来的请求会收到连接复位 转载于:https://www.cnblogs.com/traxex/p/5850877.html...

2014-06-25 11:11:00 260

转载 linux优先级

进程调度优先级中PR 和NI的含义,用TOP可以看到 PR 进程的优先级。在Linux 2.6.23之前的版本中PR是一个动态值,在运行的过程中可能出现变化。大体策略是:如果一个进程sleep了比较多的时间,PR值会降低(即优先级提高);如果一个进程占用了大量的CPU时间,PR值会升高(即优先级降低)。在2.6.23版本之后,由于引进了CFS调度策略,不再简单根据一个进程sleep...

2014-01-20 18:56:00 116

转载 C++ 一些小点

一些小的点,防止忘了再查资料 1.类的所有对象共享虚函数表。只不过每个对象保存一份虚函数表地址的指针2.非虚函数在编译期就静态绑定了。 转载于:https://www.cnblogs.com/traxex/p/5850879.html...

2014-01-14 15:29:00 51

转载 创建动态链接是链接静态库报错

创建一个动态库时报错,如下 relocation R_X86_64_32 against `vtable for Base' can not be used when making a shared object; recompile with -fPIC../sdk/lib/libbase.a: could not read symbols: Bad value因为其中链...

2014-01-03 14:06:00 128

转载 tcp连接关闭

tcp连接主动关闭的一方会有三个状态,fin_wait1, fin_wait2, time_wait 发送fin后进入fin_wait1收到ack后进入fin_wait2收到被动一方的fin并发送完ack后进入time_wait主要有两个原因1。防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)2。可靠的关闭TCP...

2013-12-30 17:53:00 93

转载 c++ 虚函数 const等的一些小问题记录

class Base{ public: void test(int a); void test(const int a);//error,不属于重载的范畴,函数名冲突.而且这么定义没意义,本来传值就不会改变原值。}class Base{public: void test(int &a); void test(const i...

2013-11-14 16:14:00 303

转载 c++ protected误区

发现以前对protected的用法一直是错误的。 protected的继承的访问权限其实是相对于类的,而不是对象。这么说可能无法理解。看例子:class Base{protected: int a;public: Base();};class Child{public: Child(); test(Child ...

2013-11-14 15:11:00 86

转载 c++动态陷阱

记录以防忘记 class base{public: ........};class derive:public base{public: void test();};intmain(){ derive child; base *father = &child; father->tes...

2013-11-14 14:35:00 55

转载 c 指针陷阱

void test(char ***s, int x, int y){ printf("%p\n", s); printf("%p\n", s + 1); printf("%p\n", (char *s) + 1);}如果s的地址是0xbfe83210,则s + 1的地址是0xbfe83214, (char *s) + 1的地址是0xbfe83...

2013-10-08 20:00:00 56

转载 使用ltrace跟踪PHP库函数调用

可能大家已经很熟悉使用strace来跟踪系统调用,今天介绍一个跟踪库函数的利器ltrace 比如我有这么一段PHP代码test.php<?php $y = '1380'; $arr = array(); for($i = 0; $i < 2000; $i ++){ $arr[] = "{$i}"; //故意用引号包起来设成...

2013-09-06 15:42:00 93

转载 php unserialize_callback_func

PHP的unserialize()方法会返回反序列化的值,如果该值为类,PHP在下面两种情况下会试图自动加载该类 1.你实现了__autoload()方法 2.设置php.ini ini_set('unserialize_callback_func','mycallback'); 当反序列化后,PHP会寻找mycallback这个方法来include这个类文件...

2013-09-06 15:10:00 322

转载 php url_rewrite后cookie问题

项目使用了url rewrite 隐藏了index.php后,设置cookie必须加上根路径才可全站获取。转载于:https://www.cnblogs.com/traxex/p/5850888.html

2013-08-13 17:01:00 100

转载 php path_info orig_path_info

php 环境变量里有一个orig_path_info.事实它是原始的path_info(即未经过php处理过的).一般来说php会处理path_info,如果它无法解析,则会取消path_info,转而直接将path_info信息赋值给orig_path_info转载于:https://www.cnblogs.com/traxex/archive/2013/06/05/5850889...

2013-06-05 15:36:00 150

转载 c实现bitmap

直接上代码. #include <stdio.h>#include <string.h>#include <stdlib.h>#define MAX 8972654 //随便设定的数#define SHIFT 5int bitmap[1 + MAX/32];int setbit(unsigned int x);...

2013-05-14 14:34:00 82

转载 子shell 进程ID($$)

shell脚本中$$指当前进程ID,而调用$()执行命令时会生成子shell,按理说$()中用$$获取到的进程号是子shell的进程ID,但shell的规则是它获取到的是current shell的pid,而current_shell的进程id在这表现为派生子shell的shell进程ID #!/bin/bashecho $$test(){ echo $$...

2013-04-26 18:35:00 319

转载 rsync invalid gid

执行rsync时经常会遇到invalid gid ***,或invalid uid ***的问题 这是因为服务器端没有这个用户组或者用户,但你在配置文件里写了该用户组或用户.比如我的报错invalid gid nobody我用id命令id nobody 显示如下uid=65534(nobody) gid=65534(nogroup) groups=65534(nog...

2013-04-22 16:18:00 214

转载 可重入内核与可重入函数

所有的内核都是可重入的.但可重入内核不只是包含可重入函数.也可以包含不可重入函数,这时候信号量,自旋锁之类的同步机制就派上用场了.转载于:https://www.cnblogs.com/traxex/archive/2013/04/12/5850893.html...

2013-04-12 16:04:00 121

转载 自旋锁 死锁

以前在看linux操作系统时始终理解不了单CPU自旋锁导致死锁的问题.今天在网上搜了一下总算是理解了.摘录如下 想象你的内核代码请求到一个自旋锁并且在它的临界区里做它的事情,在中间某处,你的代码失去了处理器。或许它已调用了一个函数(copy_from_user,假设)使进程进入睡眠。也或许,内核抢占发威,一个更高优先级的进程将你的代码推到了一边(注意,这都是假设,自旋锁其实不允许这...

2013-04-12 14:21:00 346

转载 linux查看raid信息

有时我们需要看一下服务器的raid信息. 1.软件raid的话可以通过 cat /proc/mdstat md1 : active raid1 sdb3[1] sda3[0] 480572352 blocks [2/2] [UU] md3 : active raid1 sdb2[1] sda2[0] 1952704 blocks ...

2013-04-10 15:42:00 142

转载 linux LVM分区 查看dm设备

在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目. Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.19 0.57 2.92 341228 1753052dm-0...

2013-04-10 15:00:00 145

转载 mysql重启失败 ib_logfile

重启mysql主库时遇到 log file /data1/webserver/mysql/data/ib_logfile0 is of different size 0 5242880 bytes 只要rm ib_logfile*即可。ib_logfile类文件是innodb引擎的事务日志文件。看mysql文档The ib_logfile's hold statements...

2013-04-08 13:34:00 167

转载 mysql监听多个端口的两种方式

有两种方式。 1.利用MYSQL的mysqld_multi,在my.cnf中配置多个[mysqldN],比如[mysqld0],[mysqld1]。2.创建多个配置文件和相应目录,如my.3306.cnf,my.3307.cnf.两种方式差不多。第一种方式优点在于集中管理一个配置文件就可以(但一般不会在同一个服务器上监听三个以上端口吧)。但定制每个端口实例不太方便(毕竟...

2013-04-08 11:15:00 521

转载 makefile中的CFLAGS与LDFLAGS

在configure时我们经常会遇到明明已经指令了目录但有时就是链接不了的情况,解决方法及原因如下(引用自http://www.cnblogs.com/taskiller/archive/2012/12/14/2817650.html) CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个...

2013-04-02 12:17:00 889

转载 linux修改进程打开文件数限制

有几种方法,但效果各不相同。 1.修改/etc/security/limits.conf 添加如下两行 * soft nofile 65536 * hard nofile 65536 这种方法仅对当前配置有限,重启系统后就失效了。2.在/etc/rc.local中添加 ulimit -SHn 65536 可以保证重启系统仍然生效。注...

2013-03-31 17:02:00 88

转载 shell xargs

目录下有以下文件和目录 examples.desktop kobe.txt test.jpg Music Public现在我需要把examples.desktop 和 kobe.txt移到Music里,一条命令处理完成.find -type f -maxdepth 1 | grep -v "test.jpg" | xargs -i mv {} Music其中xar...

2013-03-29 18:24:00 56

转载 linux top部分列详解

linux TOP按f键可以出来显示条目选项.按p可以调出SWAP列. SWAP列相对于进程来说其实就是保存在该进程对应的文件中(而非保留在SWAP分区中).大小等于VIRT-RES的大小.VIRT为进程申请的虚拟内存大小(但不会全用),如MYSQL为了以后的运行可能申请1G的虚拟内存,但只会将最常用的和正在使用的驻留在内存中.RES即是真正驻留的物理内存大小(即算作真正的内存消耗...

2013-03-28 17:40:00 194

转载 内存对齐

看书看到内存对齐一段时,突然想研究一下内存对齐最底层的原理.查找资料后总结如下. 先用一句话来概括:“数据项只能存储在地址是数据项大小的整数倍的内存位置上” 例如int是4个字节,则只能在地址是0,4,8等位置上(即最后字节可以整除4).不同的系统有不同的对齐系数(一般32位系统是4字节(正好是32位数据线宽度),64位是8),,可以通过#pragma pack(n)来...

2013-03-28 14:27:00 80

转载 nginx hash源码分析

HASH是NGINX核心数据结构之一.见几个链接.分析的很详细 1.http://www.linuxidc.com/Linux/2012-08/67040.htm2.http://www.oschina.net/question/234345_420653.http://blog.csdn.net/lifeibo/article/details/58971264.http:...

2013-02-05 19:05:00 104

转载 贪心算法与动态规划的区别

1.贪心算法和动态规划区别  贪心算法是自顶向下的,它会先做在当时看起来最优的选择. 而动态规划则自底向上的,先寻找子问题的最优解,然后再选择.以矩阵链相乘举例.A0A1A2A3A4动态规划会先把问题支解到最小,然后一步步向上选择最优的子问题.而动态规划会先算A0-A4的最好选择.比如是2,则再分别选择A0-A2,A3-A4的最优解 转载于:https...

2012-11-24 21:07:00 141

转载 fgetc read缓冲机制区别

read属于系统调用,它的缓存是基于内核的缓冲,是记在内核空间的. 而fgetc是标准函数, 是在用户空间I/O缓冲区的比如用fgetc读一个字节,fgetc有可能从内核中预读1024个字节到I/O缓冲区中,再返回第一个字节,这时该文件在内核中记录的读写位置是1024,而在FILE结构体中记录的读写位置是1.所以如果read一次读取的缓冲大小是1个字节,则1K的文件,r...

2012-11-13 22:02:00 343

转载 IPC及主频

IPC代表一个时钟周期内指令的执行条数.主频代表单位时间内的时钟周期数. 所以两者共同决定了CPU的效率.即主频*IPC,单位时间内指令执行数. 转载于:https://www.cnblogs.com/traxex/archive/2012/11/05/5850907.html...

2012-11-05 12:04:00 1312

转载 条件传送与分支预测.

传统的CPU会利用分支预测来保持指令执行序列的流水线(即执行当前指令的同时取下一条指令). 但如果预测失败则代价太大.新一代的CPU采用了条件传送指令.该方法预先计算出所有分支的结果以保持流水线指令序列.最后用一句cmovl(根据条件判断选择执行或跳过,一条指令内完成)指令来结束 转载于:https://www.cnblogs.com/traxex/archive/2...

2012-11-05 12:04:00 84

转载 crossdomain.xml找不到, mp3无法播放问题

设置.mp3 MIME类型为audio/mpeg 转载于:https://www.cnblogs.com/traxex/archive/2012/06/07/5850909.html

2012-06-07 17:52:00 118

转载 LINUX 删除特殊符号文件名文件

有时我们建了一些特殊符号的文件。导致rm不能删除该文件。 如我建了一个文件.touch ’如果你要用rm直接删除’这个文件是不可能的。有两种办法。1:用转义符号。rm \’2:根据文件的inode号码删除, ls -bi;//列出文件的node号码 find -inum "ls出来的inode码" -exec rm -i {} \; 转载于...

2011-12-31 15:27:00 66

空空如也

空空如也

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

TA关注的人

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