
LINUX
淡定的茶
软件爱好者曾经接触过C/CPHPJSPythonPERLSHEELDIVCSSWINDOWSLINUXHP UNIXAIXHEARTBEATDRBDLVS等
展开
-
Oops的模拟与解读
Oops是linux内核发生致命错误是输出的信息,信息输出在/var/log/messages文件中。 以下测试在SUSE 11 sp2上通过。1.准备测试程序oopsdemo.c : #include /* 引入与模块相关的宏 */#include /* 引入module_init() module_exit()函原创 2013-10-25 17:12:47 · 1021 阅读 · 0 评论 -
linux下文件句柄参数的调整
相关参数:/etc/security/limit.confuser soft nofile 2000000user hard nofile 2000000此值和fs.nr_open有关,设置不能超过这个值,否则不能登陆用户,提示:su: cannot not open session: Permission denied 转: 2.6.2原创 2013-11-05 11:09:42 · 2189 阅读 · 0 评论 -
LVS不能转发网络包的一种解决方法
LVS在使用tunl方式时,在请求的包的长度超过1480时,不能转发网络包。 修改eth的参数:generic-receive-offload=off,系统默认on。 这个参数是针对IP分片的,网卡支持IP的分片组包功能,将IP协议栈的功能转移到网卡硬件,增加了效率,但是对于LVS这个参数会使LVS在转发包时,因为包超过1480,而不转发。原创 2013-11-05 11:07:02 · 2562 阅读 · 0 评论 -
Linux 假死现象的一种原因
Linux假死,可理解为能ping通,但是登陆不了,也有是系统panic导致。这里遇到是第一种。能ping通服务器,但是ssh登录不了。机房接显示器可以登录,太幸运了,不是黑屏。 经查看是linux的tcp的设置问题: 通过命令查看tcp状态: cat /proc/net/sockstat 发现mem的值非常大,与sysctl -a中的net原创 2013-11-05 11:05:44 · 1697 阅读 · 0 评论 -
"半连接"检测的研究
所谓半开TCP连接,简单地说就是发送了TCP连接请求,但还没有得到对方应答的状态(实际上要复杂些),也就是连接尚未完全建立起来,双方还无法进行通信交互的状态。 我这里讨论的"半连接"是在tcp已经建立后,进行通讯的过程中,一方的连接因为异常断掉,另一方没有收到任何数据包,仍处于ESTABLISHED的状态。 半连接占用了tcp的资源,在大量并发的网站会使服务器资源耗尽而原创 2013-10-30 14:53:00 · 822 阅读 · 0 评论 -
Linux中突破线程数的限制
当大型的应用需要创建几十万的线程时,需要修改linux的系统值,以支持这样的应用,相关的参数调整为:1.ulimit 的参数调整ulimit -sulimit -uulimit -n可以修改/etc/security/limits.conf文件,使其永久生效2.调整句柄数/proc/sys/kernel/pid_max/proc/sys/kernel/threads原创 2013-10-25 17:09:22 · 961 阅读 · 0 评论 -
GDB 调试命令 二
1.运行n 单步执行 nexts 进入函数 stepc 继续运行 continue2.watch 监视变量或表达式 发生变化时,停止 awatch 被访问,改变时 rwatch 被访问3 delete 删除端点,监视点info bdelete4.改变变量的值set variable i = 500p i5.生成内核转储文件原创 2013-10-25 17:08:45 · 442 阅读 · 0 评论 -
TIME_WAIT and CLOSE_WAIT
linux相关参数调整: net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭; net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; net原创 2013-10-25 17:13:57 · 623 阅读 · 0 评论 -
Linux 下的Debug - 内核转储(core dump)
1.sysctl -a|grep corekernel.core_uses_pid = 1kernel.core_pattern = corekernel.core_pipe_limit = 02.ulimit -c1ulimit -c unlimited3.modify /etc/sysctl.confkernel.core_pattern = %%%p-%u-原创 2013-10-25 17:06:51 · 1389 阅读 · 0 评论 -
GDB 调试命令 一
1.complileGCC:gcc -Wall -o2 -g file.cppMAKEFILE:CFLAGS = -Wall -o2 -gconfigure:./configure CFLAGS="-Wall -o2 -g"2.gdb filename [core file] file core.29724原创 2013-10-25 17:07:48 · 629 阅读 · 0 评论 -
Suse中INIT : no more processes left.死机解决方法
Suse中远程reboot和shutdown服务器时,不能成功,关不了机。 接终端显示: run level 6 INIT : no more processes left. 死机。 解决方法: 1、查看halt,reb原创 2013-11-05 11:06:23 · 2439 阅读 · 0 评论