最新 | 最热门 | 最高评价

+0  手把手教你用Sar诊断问题

Tag: Technical | Linux
老王 发于 2016年12月02日 15:18 | 点击: 1115 | 展开摘要
如今各种高大上的监控工具早已经让人目不暇接了,但是熟悉基础的 Linux 监控命令依然是必要的,就好比 IDE 再好用,我们也得学会 vi 或者 emacs 才行。如果让我选一个必须学会的 Linux 监控命令的话,那么我想我一定会选 sar,没有之一。

监控命令 sar 隶属于 sysstat 包,监控的内容可以说是无所不包,常见的有:

sar -q:查看 Load

sar -u:查看 CPU

sar -r:查看 Memory

sar -b:查看 IO

除了这些

查看全文: http://www.udpwork.com/item/15956.html

+0  Initial impressions of SQL Server v.Next Public Preview

Tag: Linux | SQLServer | Technology
Haidong Ji 发于 2016年11月18日 11:42 | 点击: 1290 | 展开摘要
Microsoft announced its SQL Server on Linux public preview yesterday. I’m really excited to check it out. Here are some interesting things I found during my testing. I’ll write more as I play with it further.

If you want to pla

查看全文: http://www.udpwork.com/item/15928.html

+0  关于FIN_WAIT2

Tag: Technical | Linux | TCP
老王 发于 2016年09月05日 22:30 | 点击: 734 | 展开摘要
前些天,有朋友问我关于 FIN_WAIT2 的问题:如果主动关闭的一方在进入 FIN_WAIT2 状态后没有收到被动关闭的一方发送的 FIN 包,那么会怎样?

让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况:

TCP Close

按照正常的状态迁移路径,当 FIN_WAIT2 收到 FIN 包后会迁移到 TIME_WAIT 状态。如果没有收到 FIN 包,那么连接状态会如何迁移,我们不妨测试一下:

#!/usr/bin/env python

impo

查看全文: http://www.udpwork.com/item/15960.html

+0  如何判断GCC的版本

Tag: Technical | Linux
老王 发于 2016年09月01日 14:53 | 点击: 800 | 展开摘要
我说的 GCC 版本可不是指的「gcc –version」,而是指的上到 Linux 内核,下到 PHP 之类的软件,是用哪个版本的 GCC 编译的。

先看看如何判断 Linux 内核是用什么版本的 GCC 编译的?

shell> cat /proc/version
... (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) ...

shell> /lib64/libc.so.6
GNU C

查看全文: http://www.udpwork.com/item/15961.html

+0  白话火焰图

Tag: Technical | Linux | Performance
老王 发于 2016年08月18日 13:44 | 点击: 214 | 展开摘要
很多人感冒发烧的时候,往往会模仿神农氏尝百草的路子:先尝尝抗病毒的药,再试试抗细菌的药,甭管家里有什么药挨个试,什么中药西药,瞎猫总会碰上死耗子,如此做法自然是不可取的,正确的做法应该是去医院验个血,确诊后再对症下药。

让我们回想一下我们一般是如何调试程序的:通常是在没有数据的情况下依靠主观臆断来瞎蒙,而不是考虑问题到底是什么引起的!毫无疑问,调优程序性能问题的时候,同样需要对症下药。好消息是 Brendan D. Gregg 发明了火焰图,可以一针见血的指出程序的性能瓶颈

查看全文: http://www.udpwork.com/item/15962.html

+0  缓存更新的套路

Tag: Unix/Linux | 程序设计 | cache | Design | design pattern | Linux
陈皓 发于 2016年07月27日 16:25 | 点击: 794 | 展开摘要
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。

我不知道为什么这么多人用的都是这个逻辑,当我在微博上发了这个贴以后,我发现好些人给了好多非常复杂和诡异的方案,所以,

查看全文: http://www.udpwork.com/item/15697.html

+0  记录一个多核CPU负载不均衡问题

Tag: Technical | Linux | PHP
老王 发于 2016年07月19日 21:07 | 点击: 246 | 展开摘要
昨晚和一位读者朋友讨论了一个问题:在一台多核 CPU 的 Web 服务器上,存在负载不均衡问题,其中 CPU0 的负载明显高于其它 CPUx,进一步调查表明 PHP-FPM 的嫌疑很大。话说以前我曾经记录过软中断导致过类似的问题,但是本例中可以排除嫌疑。

让我们在一台四核服务器上采样分析一下数据确认看看是否存在负载不均衡问题:

shell> mpstat -P ALL 1 10

CPU %usr %nice %sys %iowait %irq

查看全文: http://www.udpwork.com/item/15963.html

+0  nginx的proxy_pass使用https(SSL加密)

Tag: Internet | Linux
Xiaoxia 发于 2016年07月15日 03:56 | 点击: 2732 | 展开摘要
写这个文章的原因是因为今晨解决了一个电影FM网友经常访问网站502的问题。最近电影FM粉丝交流群越来越活跃了,感谢Rachel妹纸每周举行的猜电影活动。热衷电影的网友可以加入电影FM的交流QQ群:471644884。最近电影FM的访问量也上升了,高峰时候接近2w一天的IP。今晚美女主持人Kiki来访电影FM时,登录的时候遇到了502,其实我今天访问的时候也出现过一次。为什么会这样呢?

因为电影FM没有网站备案(做电影推荐也需要视听许可证???搞不懂),所以前端流量入口的机器

查看全文: http://www.udpwork.com/item/15674.html

+0  Linux上下文切换监控

Tag: Linux
鸟窝 发于 2016年06月15日 10:43 | 点击: 1039 | 展开摘要
我们在监测Linux的应用的时候,当CPU的利用率非常高,但是系统的性能却上不去的时候,不妨监控一下线程/进程的切换,看看是不是context switching导致的overhead过高。

一般我使用dstat工具用来监控,比如dstat -y:

1
2
3
4
5

---system--
int csw
367 561
274 439
279 363

或者vmstat 3:

1
2
3
4

[root@abc smallnest]

查看全文: http://www.udpwork.com/item/15393.html

+0  Linux Shell mv 命令覆盖目标目录

Tag: Linux
ideawu 发于 2016年06月08日 15:49 | 点击: 563 | 展开摘要
注意, 在Linux命令行下, mv是移动文件或者文件夹(目录), 如果目标路径是文件, 则会覆盖, 但如果目标是目录, 则被移动到目录里面. 有时, 我们需要替换到目标目录. 例如

mv a tmp/a

我们希望, 最终文件a(可能是文本文件)应该在tmp目录下. 但如果tmp目录已经有同名目录的话, a文件的路径会变成tmp/a/a, 这不是我们希望的.

解决方法是加上-T参数:

mv -T a tmp/a

参数说明:

-T, --no-target-dire

查看全文: http://www.udpwork.com/item/15548.html

+0  iptables 封禁解封 IP

Tag: Linux
ideawu 发于 2016年06月08日 11:45 | 点击: 486 | 展开摘要
iptables 封禁 IP:

sudo iptables -I INPUT -s 1.2.3.4 -j DROP

iptables 解封 IP:

sudo iptables -D INPUT -s 1.2.3.4 -j DROP

Related posts:
告诉我应该选择哪一个Linux发行版

如何让 PHP json_encode 函数不转义中文?

ssh远程执行命令

Mac 下创建隐藏用户

jQuery 设置复选框选中状态的 BUG

查看全文: http://www.udpwork.com/item/15546.html

+0  编译libpcap报错 error: 'DBUS_ERROR_INIT' undeclared (first use in this function)

Tag: Linux | dbus | libpcap
suchasplus 发于 2016年05月13日 20:44 | 点击: 840 | 展开摘要
在老版本centos上用pcap4j,需要libpcap > 1.0.0, 系统pcap版本是0.9.x

编译libpcap的时候提示 error: 'DBUS_ERROR_INIT' undeclared (first use in this function)

查阅dbus源码之后直接在pcap-dbus.c头部增加一行

#define DBUS_ERROR_INIT { NULL, NULL, TRUE, 0, 0, 0, 0, NULL }

就可以编译通

查看全文: http://www.udpwork.com/item/15494.html
|<<<1234567>>>| 一共47页, 558条记录