python项目中写了一个C API扩展,使用Pyobject封装的. python import的时候总是提示错误,信息如下。
Traceback (most recent call last):
File “kk.py”, line 3, in <module>
import timerstack
ImportError: dynamic module does not define init function (inittimerstack)
解决方法:
Python doesn’t and cannot support arbitrary C files as modules. You’ll have to follow certain conventions to let Python know what functions your module supports.
To do so, Python will look for a init<name> function, where <name> is the module name. Python was looking for initfizzbuzz but failed to find it, so loading the module failed.
被Elasticsearch的mapping坑到了,当mapping某个字段跟你插入字段的类型不一样的时候,他不会抛出异常…
Socket send、recv跟tcp协议的ACK、滑动窗口的关联关系.
理解linux内核的HZ ,Jiffies , TICK 概念,及xtime jiffies的区别。
HZ的配置可以决定linux下一秒钟可以产生多少个节拍,也就是时钟中断的次数.
JIffies是系统启动后会记录TICK,中断的次数。
TICK是每次中断的间隔时间。
启动启动的时候会从cmos获取时间。// jiffies推算的时间一般只能到毫秒,而xtime得时间可以到纳秒。
通过Charles 抓取分析https的连接, 通过Charles 来抓取分析一些app中的调用连接。
首先我们要明确https本身是安全的,而charles能抓取并分析https内容原因是 我们在手机端导入了charles的根证书,这样charles做proxy的时候,完全可以伪造证书,这样就可以劫持应用了。
Linux在O_APPEND打开文件后,在使用lseek设置了偏移量后,读写会收到啥影响?
O_APPEND open文件之后,每次写文件之前都会把偏移量移到文件的末端,然后写数据,这两个数据是原子性的. 另外这个模式下可以往末端以外的地方写数据么? 不能,因为你是O_APPEND写的文件. 读数据还是没有问题,你想在那个偏移量读都可以。
使用dup、dup2 实现文件描述符的复制,及IO重定向.
在linux下父子进程是可以传递文件描述符的,通过socketpair创建两个fd来实现的. 另外通过socketpair还可以实现进程间的双向通信。
关于redis主从复制的原理的问题, redis是通过DUMP RDB再send给slave节点的,但RDB的过程中,如果有用户insert数据咋办? 怎么才能避免阻塞工作线程。
说一点大家应该就懂了,Redis在做的RDB和Aof rewrite都是新进程来处理的,既然是fork的子进程肯定是cow写实复制的,子进程只是复制了父进程的页表而已,这个速度是很快的。 但如果父进程的数据有40G (比方),那么子进程光是copy页表也会消耗一点时间的,另外父子进程在修改数据前是共用物理页帧的,当父子有一个修改数据时,才会把具体内容复制给子进程。redis的做法是先注册repl_backlog,然后进行RDB。 这样master会把用户的新指令塞到repl_backlog环形队列里面。
pymongo 太贱了 2.2版本的结构是max_pool_size 3.x的是 maxPoolSize ,参数的兼容性都没做明白, 刚要到github中骂他,结果还关闭了issue的通道,说是可以到mongo的论坛提issue。
File "/home/ruifengyun/quantum_migrate/lib/store.py", line 26, in _get_connection self._conn = MongoClient(self.host, self.port, maxPoolSize = self.max_pool_size) File "/usr/local/lib/python2.7/site-packages/pymongo/mongo_client.py", line 290, in __init__ option, value = common.validate(option, value) File "/usr/local/lib/python2.7/site-packages/pymongo/common.py", line 348, in validate value = validator(option, value) File "/usr/local/lib/python2.7/site-packages/pymongo/common.py", line 61, in raise_config_error raise ConfigurationError("Unknown option %s" % (key,)) pymongo.errors.ConfigurationError: Unknown option maxPoolSize
https://pypi.python.org/pypi/format_converter/1.1 missing README file… setup failed. FYI