最新 | 最热门 | 最高评价

+0  记一次LVS/Nginx环境下的访问控制

Tag: Technical | LVS | Nginx
老王 发于 2015年01月23日 16:56 | 点击: 3039 | 展开摘要
偶然间,我发现 Graphite 显示服务器网卡流量呈锯齿状,于是查了一下 Nginx 日志,发现有人在周期性抓我们的接口数据。我这爆脾气自然不能容忍这种行径。

简单分析一下访问日志,很容易就能拿到了可疑的 IP 段,直接用 iptables 封杀:

shell> iptables -A INPUT -s x.y.z.0/24 -j DROP

本以为世界会就此清净,可没想到一点儿用都没有。莫非小偷已经突破锁头的限制?不能够啊!直觉告诉我问题应该和 LVS 有关,可

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

+0  技术管理猪鸡-1 开篇

Tag: pearl | techlead
Eric 发于 2015年05月18日 01:33 | 点击: 3035 | 展开摘要
高效的秘密

我正式走上职业生涯是 2011 年秋天,完成了博士学业,踌躇满志地加入了 Google。当时,我的理想是做 Google 里生产率最高的软件工程师。为此,我列了一个高效工程师名单,看他们每天提交的代码是些什么,以从中学习高效的工作方法。这个名单里有 Jeff Dean, Sanjay Ghemawat, Rob Pike,还有一些 Google 内 7 级以上的工程师。因为 Google 内部源代码提交全部公开,我可以看到他们每天的工作内容。

很快,从读这些代

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

+0  Xen可写页表方式的变化

Tag: Tech | emulate | page fault | writable page table | xen
liuw 发于 2011年03月13日 12:28 | 点击: 3024 | 展开摘要
以前看Paper的时候,总说Xen的可写页表机制是如下操作的:

1. DomU写L1页表,由于L1页表被Xen设置了只读位,所以会引发page fault;

2. Xen捕获page fault,然后把L1页表从进程页表中脱离下来,并且设置可写;

3. DomU自行更新页表;

4. Xen检查更新情况,合法则把L1页表从新挂回进程页表中;

5. DomU正常执行。

但是现在我们要自己写Paper了,却发现已经不是那么一回事了。我们用的版本是Xen-3.3.0,操作

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

+0  关于虚拟磁盘的一些笔记

Tag: Tech | format | loop | nbd | qcow2 | qemu | virtual disk
liuw 发于 2010年11月23日 22:25 | 点击: 3021 | 展开摘要
虽然虚拟机可以使用物理硬盘、物理分区来存储系统、数据,但是更多情况下我们还是使用虚拟磁盘来完成这个工作。最简单的虚拟磁盘格式就是raw file,可以使用dd(1)或者qemu-img来创建。如:

$ dd if=/dev/zero of=/PATH/TO/IMG bs=1G count=10

然后把生成的文件作为一个虚拟磁盘挂载到虚拟机中,就可以按照正常的程序去分区,写数据。

在虚拟机关机之后,如果想读取虚拟磁盘分区里面的数据,还得费点操作。首先使用losetup(8

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

+0  JavaOne美国之行–走势篇

Tag: JavaOne | oracle keynote | javaone general technical session | jvm
bluedavy 发于 2010年09月30日 00:12 | 点击: 2999 | 展开摘要
JavaOne已经结束几天了,在走势方面,其实外部消息已经非常非常多了,毕竟现在Oracle掌控了Oracle、MySQL、两个使用面最广的JVM(JRockit、Hotspot)的发展方向,再结合我和jrockit、hotspot一些人聊后对JVM发展的更多感想吧。

Oracle Keynote

Oracle的keynote万众期待,现场发布的exalogic应该也算是比较隐蔽的消息了,之前貌似没太听说过,由于不太感兴趣,本来之前我是不打算听的,只是看到twitter上

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

+5  对比Imagick和Gmagick的像素迭代功能

Tag: Technical | Gmagick | Imagick | PHP
老王 发于 2010年10月17日 17:45 | 点击: 2997 | 展开摘要
通常,图像处理工作都是诸如缩略图,水印之类的简单工作,不过有的时候会复杂些,比如像素迭代,本文通过一个实例对比Imagick和Gmagick的像素迭代功能:

像素数据生成代码

<?php

$data = array();

for ($row = 0; $row < 100; $row++) {
for ($column = 0; $column < 100; $column++) {
$data[$row][$column]

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

+0  Xen更新页表的几个入口

Tag: Tech | linux | page table | update | xen
liuw 发于 2010年12月10日 16:55 | 点击: 2997 | 展开摘要
这屁事搞了好几天了,这里记一下。

三个入口:

do_mmu_update,个是最正规的ParaVirt入口,可以更新任何一级页表。

do_update_va_mapping,直接更新virtual address对应的L1页表,只能用于L1页表。

writable page table,实际上这是一个Xen的特性,不是一个具体的函数,也只能用于L1页表。Xen先把L1页表unhook让guest可写,然后ptwr_emulated_update为guest模拟写操作,

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

+0  SYN丢包的几个例子

Tag: Technical | TCP
老王 发于 2017年10月31日 19:50 | 点击: 2994 | 展开摘要
如果出现 SYN 丢包,那么将导致严重的性能问题,如果没有严重到完全连不上,那么在延迟时间上会表现出明显的时间特征,比如:1秒,3秒,7秒,15秒,31秒,具体可以参考:「SYN和RTO」,本文不说这个,就说说哪些情况会出现 SYN 丢包。

SYN Flood 攻击:

攻击者通过伪造大量不存在的 SYN 请求来消耗服务器资源,正常情况下,SYN 请求会被放到半连接队列中,一旦队列满了,后续的 SYN 请求将会被丢弃。

比较容易想到的方法一个是加快淘汰无效 SYN 请求,

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

+0  编程珠玑番外篇-O 中间语言和虚拟机漫谈

Tag: pearl | tech
Eric 发于 2014年05月12日 09:29 | 点击: 2993 | 展开摘要
本文原发于《程序员》2014年3月刊

导言

编程语言的发展历史,总的来说,是一个从抽象机器操作逐步进化为抽象人的思维的过程。机器操作和人的思维如一枚硬币的两面,而语言编译器就像是个双面胶,将这两面粘在一起,保证编程语言源程序和机器代码在行为上等价。当然,人本身并不是一个完美的编译器,不能无错的将思维表达为高级语言程序,这种偏差,即Bug。因为编译器的帮助,我们可以脱离机器细节,只关心表达思维和程序行为这一面。

编程语言的发展日新月异。特别是随着对问题的深入理解,新的设计

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

+0  如何快速判断配置文件的路径

Tag: Technical | Linux
老王 发于 2017年07月26日 19:54 | 点击: 2982 | 展开摘要
最近使用 pip 的时候感觉速度太慢了,感觉有必要改成豆瓣的豆瓣的镜像,可我记不清 pip 的配置文件路径了,当然可以用搜索引擎查询一下,不过还有更快的方法:strace!

shell> strace -eopen pip 2>&1 | grep pip.conf
open("/etc/xdg/pip/pip.conf", O_RDONLY) = ...
open("/etc/pip.conf", O_RDONLY) = ...
open

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

+0  以太坊地址区分大小写么

Tag: Technical | Ethereum
老王 发于 2018年11月29日 21:32 | 点击: 2972 | 展开摘要
以太坊地址区分大小写么?要搞清楚这个问题,我们不妨先在私链上做个实验:

geth> eth.sendTransaction({
from: eth.accounts[0],
to: "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
value: web3.toWei(1, 'ether')
})

geth> eth.sendTransaction({
from: eth.accounts

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

+0  真假百度蜘蛛的甄别

Tag: Technical | Linux
老王 发于 2017年01月19日 12:16 | 点击: 2960 | 展开摘要
虽然百度的口碑并不好,但是不可否认的是,它一直是中文搜索中的霸主,所以对大多数中小型商业公司而言,都对百度蜘蛛的抓取行为予以放行,不过还有很多非法的蜘蛛,它们会通过 User-Agent 把自己伪装成百度蜘蛛,此时如果单纯以 User-Agent 来判断是否是百度蜘蛛就不合适了。虽然网上能找到很多现成的百度蜘蛛 IP 段,但是并不能确认它们的准确性,所以我打算自己收集,进而甄别真假百度蜘蛛。

实际上百度在常见问题解答中给出了甄别的方法:当有 User-Agent 是 Bai

查看全文: http://www.udpwork.com/item/16065.html
|<<<3456789>>>| 一共30页, 355条记录