在我的代码中,我使用外部C库,并且库使用MADV_SEQUENTIAL选项调用madvise,这需要很长时间才能完成.在我看来,只使用MADV_SEQUENTIAL调用madvise就足够了我们的工作.我的第一个问题是,为什么要进行多个madvise系统调用,是否有一个逻辑用不同的选项顺序调用madvise?我的第二个问题是,你有什么想法为什么与MADV_SEQUENTIAL的混血儿需要太长时间,有时大约1-2分钟?
[root@mymachine ~]# strace -ttT my_compiled_code
...
13:11:35.358982 open("/some/big/file", O_RDONLY) = 8 <0.000010>
13:11:35.359060 fstat64(8, {st_mode=S_IFREG|0644, st_size=953360384, ...}) = 0 <0.000006>
13:11:35.359155 mmap2(NULL, 1073741824, PROT_READ, MAP_SHARED, 8, 0) = 0x7755e000 <0.000007>
13:11:35.359223 madvise(0x7755e000, 1073741824, MADV_NORMAL) = 0 <0.000006>
13:11:35.359266 madvise(0x7755e000, 1073741824, MADV_RANDOM) = 0 <0.000006>
13:11:35.359886 madvise(0x7755e000, 1073741824, MADV_SEQUENTIAL) = 0 <0.000006>
13:11:53.730549 madvise(0x7755e000, 1073741824, MADV_RANDOM) = 0 <0.000013>
...
Run Code Online (Sandbox Code Playgroud)
我使用的是32位Linux内核:3.4.52-9
[root@mymachine ~]# free -lk
total used free shared buffers cached
Mem: 4034412 3419344 615068 0 55712 767824
Low: 853572 …Run Code Online (Sandbox Code Playgroud) 我正在编写一个允许Linux机器通过USB调制解调器连接到互联网的应用程序.我有多个usb调制解调器具有相同的供应商和产品ID; 我无法区分它们使用lsusb哪个提供供应商和产品ID.根据他们的usb端口提供ID也不能解决我的问题,因为我希望能够在我想要的任何端口使用usb调制解调器.
是否有可用于区分我的USB设备的唯一标识符?
我正在构建一个日志查看实用程序,它将处理TB日志中的实时搜索.我决定将日志存储在Solr中并将其用作搜索引擎.我将在项目中使用Django作为框架.为了使用Solr和Django,我看到有干草堆.现在我的架构将是这样的.
Store Index Search Show
Log Stream ----------------> Solr --------> Haystack ------> Django
Run Code Online (Sandbox Code Playgroud)
我的日志是普通的Linux服务器日志,如网络,操作,错误等.Syslog正在发送日志.我将允许基于所有日志行进行过滤.我将允许按列排序,例如:ip列,日期列等.
示例日志:
Dec 11 13:24:03 2012 [firewall] R0 SRC=192.168.9.11 DST=192.168.11.29 LEN=83 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=36904 DPT=161 LEN=63
Run Code Online (Sandbox Code Playgroud)
我想问一下,使用MongoDB作为存储,过滤和搜索日志会更好,Solr会做得更好.Elasticsearch也在我脑海中浮现.在这种情况下你会选择什么?
提前致谢.
我将很快实现日志查看实用程序.但我坚持使用数据库选择.我的要求如下:
我知道如果我对表格进行分段,PostgreSQL将会起作用.但是我能否在上面写出这个性能.据我所知,NoSQL是日志存储的更好选择,因为日志结构不是很好.我看到了一个像下面的例子,看起来很有希望使用hadoop-hbase-lucene:http://blog.mgm-tp.com/2010/03/hadoop-log-management-part1/
但在决定之前我想询问是否有人之前做过这样的选择并且可以给我一个想法.哪个DBMS最适合这项任务?
logging ×2
mongodb ×2
django ×1
hadoop ×1
linux-kernel ×1
lsusb ×1
mmap ×1
nosql ×1
postgresql ×1
solr ×1
system-calls ×1
usb ×1