后台开发:核心技术与应用实践
hai0808
这个作者很懒,什么都没留下…
展开
-
Linux tcpdump命令详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tcpdump普通...转载 2017-05-10 19:59:43 · 322 阅读 · 0 评论 -
gdb调试多进程和多线程命令 .
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent转载 2017-05-09 16:47:52 · 355 阅读 · 0 评论 -
mmap
简单的目录mmap基础概念mmap内存映射原理mmap和常规文件操作的区别mmap优点总结mmap相关函数mmap实例mmap基础概念1.mmap内存映射原理mmap是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系;实现这样的映射关系后,转载 2017-05-10 00:01:03 · 614 阅读 · 0 评论 -
mmap详解
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域转载 2017-05-10 00:11:41 · 242 阅读 · 0 评论 -
Linux后台开发应该具备技能
Linux后台开发应该具备技能一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握3、awk sed需掌握4、共享内存的使用实现原理、然后共转载 2017-06-19 09:14:37 · 212 阅读 · 0 评论 -
Linux下core文件调试方法
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (Linux中如果内存越界会收到SIGSEGV信号,然后就会core dump)在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该转载 2017-06-19 09:15:20 · 290 阅读 · 0 评论 -
linux上寻找并杀死僵尸进程
linux服务器上,多少会出现一些僵尸进程,下面介绍如何快速寻找和消灭这些僵尸进程的方法首先,我们可以用top命令来查看服务器当前是否有僵尸进程,在下图中可以看到僵尸进程数的提示,如果数字大于0,那么意味着服务器当前存在有僵尸进程下面,我们用ps和grep命令寻找僵尸进程ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'命令注解:-A 参数列出所有进程-o 自定...转载 2018-04-25 19:37:04 · 390 阅读 · 0 评论 -
VPP源码架构介绍
VPP架构:VPP介绍VPP:(the vector packet processor)是一个可扩展框架,可提供开箱即用的交换机/路由器功能。是Linux基金会下开源项目FD.io的一个子项目,由思科贡献的开源版本,目前是FD.io的最核心的项目。 VPP实现的优点是其高性能,成熟的技术,其模块化和灵活性以及丰富的功能集。 VPP技术基于成熟的技术,据说支撑了超过十亿美元的思科产品。它的模块化设计...转载 2018-05-17 09:58:39 · 2844 阅读 · 0 评论 -
腾讯后台开发面试题--整理1
可参照这篇博客一起看:http://blog.chinaunix.net/uid-29867011-id-4508083.htmllinux和os:netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的概率较小 ^_^ ,这四个命令的熟练掌握程度基本上能体现面试者实际开发和调试程序的经验)http://blog.csdn.net/fy...转载 2018-05-19 13:02:38 · 650 阅读 · 0 评论 -
ngx_http_redis_module配置使用
1.config文件添加 location /redis { #set $redis_key $uri; set $redis_key qq; redis_pass 127.0.0.1:6379; default_type text/html...原创 2018-10-15 16:55:29 · 1085 阅读 · 0 评论 -
TCP可靠性的保证机制总结
TCP保证可靠性主要依靠下面7种机制: 1、检验和 TCP检验和的计算与UDP一样,在计算时要加上12byte的伪首部,检验范围包括TCP首部及数据部分,但是UDP的检验和字段为可选的,而TCP中是必须有的。计算方法为:在发送方将整个报文段分为多个16位的段,然后将所有段进行反码相加,将结果存放在检验和字段中,接收方用相同的方法进行计算,如最终结果为检验字段所有位是全1则正确(UDP中为0是正...转载 2019-02-26 10:16:17 · 228 阅读 · 0 评论 -
openssh无法登录:server responded "algorithm negotiation failed”
修改ssh的配置文件 /etc/ssh/sshd_config在配置文件中添加:Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbcMACs hmac-m转载 2017-05-17 14:38:14 · 525 阅读 · 0 评论 -
深度解析KGDB调试Linux模块和内核
http://blog.csdn.net/swingwang/article/details/72331196转载文章请注明作者和二维码及全文信息。不会编程的程序员,不是好的架构师,编程和内核调试也是出色架构师的必修课。谈起编程人员的数量,基于Linux平台的软件工程师肯定是最多的,没有之一。那今天我们就以Linux为例,深入讲一下内核模块和内核的调试技术和调试工具KG转载 2017-05-16 23:05:12 · 3984 阅读 · 0 评论 -
iovec结构体定义及使用
[cpp] view plain copy print?#include struct iovec { ptr_t iov_base; /* Starting address */ size_t iov_len; /* Length in bytes */ }; struct iovec定义了一个向量元转载 2017-05-08 15:48:34 · 643 阅读 · 0 评论 -
阅读笔记 目录
第1 章 C++ 编程常用技术 11.1 第一个C++ 程序 11.2 函数 31.3 数组 61.4 指针 81.5 引用 121.6 结构体、公用体、枚举 141.6.1 结构体、共用体、枚举的概念 141.6.2 结构体、共用体在内存单元占用字节数的计算 181.7 预处理 201.8 本章小结 25第2 章 面向对象的C++ 262.1原创 2017-05-05 08:43:37 · 270 阅读 · 0 评论 -
第五章5.1 strace
http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程转载 2017-05-05 08:54:23 · 332 阅读 · 0 评论 -
setsid()
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。 比如,作业规划进程crond,打印进程lpd等。守护进程的编程本身并不复杂,复杂的是各种版本转载 2017-05-05 17:43:04 · 562 阅读 · 0 评论 -
查看linux中某个端口(port)是否被占用
1.使用lsof lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80转载 2017-05-05 17:47:44 · 363 阅读 · 0 评论 -
coredump
一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函转载 2017-05-06 08:42:11 · 266 阅读 · 0 评论 -
常用的linux命令和工具
http://blog.csdn.net/tenfyguo/article/details/8044202TOP——Linux进程监控VMSTAT——虚拟内存统计LSOF——列出打开的文件TCPDUMP——网络数据包分析器NETSTAT——网络统计HTOP——Linux进程监测lotop——监控Linux磁盘I/Oiostat——输入/输出统计转载 2017-05-06 08:54:05 · 333 阅读 · 0 评论 -
valgrind 的使用简介
一 valgrind是什么?Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系转载 2017-05-06 11:59:02 · 238 阅读 · 0 评论 -
网络编程学习笔记--1.socket可读可写条件
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45788591socket可读可写条件,经常做为面试题被问,因为它考察被面试者对网络编程的基础了解的是不是够深入。要了解socket可读可写条件,我们先了解几个概念:1.接收缓存区低水位标记(用于读)和发送缓存区低水位标记(用于写):转载 2017-05-07 10:43:47 · 389 阅读 · 0 评论 -
Linux如何查看端口状态
在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)转载 2017-05-07 11:22:05 · 89504 阅读 · 0 评论 -
libevent+多线程的服务器模型
最近在看memcached的源码,觉得它那种libevent+多线程的服务器模型真的很不错,我将这个模型封装成一个C++类,根据我的简单测试,这个模型的效率真的很不错,欢迎大家试用。这个类的使用方法很简单(缺点是不太灵活),只要派生一个类,根据需要重写以下这几个虚函数就行了://新建连接成功后,会调用该函数virtual void ConnectionEvent(Conn *conn转载 2017-05-07 15:37:57 · 1496 阅读 · 0 评论 -
内存屏障
#if defined(__x86_64__) #define dsb __asm__ __volatile__("lfence":::"memory")#else #define dsb()#endif#include<stdio.h>#include<stdlib.h>int main(){ dsb();...原创 2019-07-15 21:37:57 · 197 阅读 · 0 评论