草庐IT

memory-profiling

全部标签

python - sqlite - 与文件一起工作,死于 :memory:

我的脚本在使用SQLite时测试失败基础(通过sqlalchemy)在:memory:中创建,并在使用物理文件创建的基础时通过测试。脚本是多线程的。我知道将SQLite与多线程(锁定等)一起使用并不是最好的主意,但我使用SQLite仅测试脚本的数据库接口(interface)。当我使用:memory:时,脚本死了,提示没有表:OperationalError:(OperationalError)nosuchtable:content_infou'INSERTINTOcontent_info...测试过程(带nose)如下:defsetup_database():globalglobal

java - 当通过 jdbc 与 sqlite3 数据库连接时,我该怎么做才能避免 "out of memory"错误?

当通过jdbc连接sqlite3数据库时,我必须做什么来避免“内存不足”的错误?java.sql.SQLException:outofmemoryatorg.sqlite.DB.throwex(DB.java:288)atorg.sqlite.NestedDB._open(NestedDB.java:73)atorg.sqlite.DB.open(DB.java:77)atorg.sqlite.Conn.(Conn.java:88)atorg.sqlite.JDBC.connect(JDBC.java:64)atjava.sql.DriverManager.getConnection(

profiling - 是否有分析 sqlite 查询的工具?

我正在使用SQLite数据库并希望加快我的查询速度,可能使用索引或通过完全重组它们。是否有一种工具可以分析查询,这可能会帮助我确定哪些地方速度变慢了?我知道我可以将查询输入到SQLiteAdministrator之类的工具中来为它们计时,但我正在寻找比这更系统的东西——也许是位于后台并查看我所有查询的东西在一段时间内输入,给出任何瓶颈的分割。 最佳答案 这只会回答问题的一部分(不幸的是最无用的部分)。我用谷歌搜索了这个,因为我正在寻找一些时间查询的东西,而sqlite3客户端有一个计时器元命令。sqlite>.timer打开从那时起

memory-leaks - redis服务器内存占用单调递增

我已经为redis做了一个简单的基准代码,如下伪代码。for10~100redissessions:forntime:key=some_random_string(key_size)#about100bytedata=some_random_string(data_size)#about100k~1msession.command("SET%s%s",key,data)session.command("GET%s",key)session.command("DEL%s",key)当基准程序启动时,redis-server进程的内存使用量单调增加,直到达到物理内存限制(8gb)并在ses

memory - Redis 需要多少空闲内存才能运行?

在这个阶段,我很确定Redis需要在操作系统上有一定数量的空闲内存才能运行。在过去的几周里,我看到Redis(Linux)内存不足,但仍有几千兆字节的RAM可用,而在Windows上,当您在系统上使用大量内存但仍有可用内存时,它拒绝启动一堆免费的,如下面的屏幕截图所示。Windows上的错误提示了为什么会发生这种情况(尽管我不认为它在Linux上是一样的)。但是,我的问题更笼统。Redis需要多少空闲内存才能运行? 最佳答案 Redis需要数据大小x2到x3之间的RAM。maxheap标志是特定于Windows的。

memory-management - Redis:在不重启redis的情况下释放used_memory_rss

随着时间的推移,used_memory_rss不断增加。我理解它被填满的原因(它是内存分配器的工作方式)。但是我需要一个解决方案来释放它而不重新启动redis。有什么办法可以做到这一点吗? 最佳答案 在redis4.0中有一个新命令MEMORYPURGE这将对内存进行碎片整理并将其释放给操作系统。另见MEMORYHELP 关于memory-management-Redis:在不重启redis的情况下释放used_memory_rss,我们在StackOverflow上找到一个类似的问题:

memory - 查找每个redis DB的内存消耗

问题我的一个PythonRedis客户端因以下异常而失败:redis.exceptions.ResponseError:MISCONFRedisisconfiguredtosaveRDBsnapshots,butiscurrentlynotabletopersistondisk.Commandsthatmaymodifythedatasetaredisabled.PleasecheckRedislogsfordetailsabouttheerror.我查过redis机器,好像内存不足:免费totalusedfreesharedbufferscachedMem:3952365629501

memory - 获取内存中的redis key-value大小

我试图在Redis中获取键值对的大小,或者只是一个键,或者只是一个值。使用debugobjectkey命令返回键值的序列化大小(如果要写入磁盘)而不是它在内存中使用的实际字节数。这可以通过检查源代码来确认(基于此Redis:Showdatabasesize/sizeforkeys)https://github.com/antirez/redis/blob/4082c38a60eedd524c78ef48c1b241105f4ddc50/src/debug.c#L337-L343https://github.com/antirez/redis/blob/4082c38a60eedd524

memory - 对象的 Redis 编码和大小影响

当我将一些对象写入redis时,我可以获得不同的内存使用统计信息。我想了解这是如何发生的。简单的例子:127.0.0.1:6379>seta1OK127.0.0.1:6379>MEMORYusagea(integer)49127.0.0.1:6379>seta"1"OK127.0.0.1:6379>MEMORYusagea(integer)49127.0.0.1:6379>seta\x01MEMORYusagea(integer)55127.0.0.1:6379>seta'\x01'MEMORYusagea(integer)55127.0.0.1:6379>seta"\x01"MEMO

c - Redis 服务器及其 fork() - 何时调用 vm_enough_memory?

我试图了解fork()在Linux上运行的Redis服务器中是如何工作的,以及Redis如何生成fork:无法分配内存响应。根据我的调查,我看到了下一个:1redis-server在其rdbSaveBackground()中调用fork():if((childpid=fork())==0){2这会调用glibc的sysdeps/nptl/fork.c中的fork()(似乎在/usr/lib/libc.so.6):$ldd/usr/bin/redis-serverlinux-vdso.so.1(0x00007ffde8d93000)libjemalloc.so.2=>/usr/lib/l