Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
We have written 6.7M keys with value size of 600 bytes. Total memory usage expected is 4.2GB but we are noticing rss memory usage of 5.7GB.
Why does redis use extra 2GB of memory?
memory info command output
info memory
# Memory
used_memory:5913620368
used_memory_human:5.51G
used_memory_rss:6065446912
used_memory_rss_human:5.65G
used_memory_peak:5913639024
used_memory_peak_human:5.51G
used_memory_peak_perc:100.00%
used_memory_overhead:338769120
used_memory_startup:1018080
used_memory_dataset:5574851248
used_memory_dataset_perc:94.29%
allocator_allocated:5913554768
allocator_active:6065409024
allocator_resident:6065409024
total_system_memory:34359738368
total_system_memory_human:32.00G
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
allocator_frag_ratio:1.03
allocator_frag_bytes:151854256
allocator_rss_ratio:1.00
allocator_rss_bytes:0
rss_overhead_ratio:1.00
rss_overhead_bytes:37888
mem_fragmentation_ratio:1.03
mem_fragmentation_bytes:151892144
mem_not_counted_for_evict:3738
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:17440
mem_aof_buffer:4096
mem_allocator:libc
active_defrag_running:0
lazyfree_pending_objects:0
number of keys in redis
info keyspace
# Keyspace
db6:keys=6765516,expires=0,avg_ttl=0
Please check this https://redis.io/topics/faq :
64-bit systems will use considerably more memory than 32-bit systems to store the same keys, especially if the keys and values are small. This is because pointers take 8 bytes in 64-bit systems. But of course the advantage is that you can have a lot of memory in 64-bit systems, so in order to run large Redis servers a 64-bit system is more or less required. The alternative is shardi
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
How could I know from Operating System in a Virtual Machine if ram memory is being overcommited by Openstack hypervisor?
My app is being killed by the operating system cause Out of Memory error, but I have configured the heap and meta space under 70% of the total available ram.
I have no access to the openstack configuration.
Thanks in advance.
Unfortunately you cannot know the details of OpenStack overcommit if you do not have access to the OpenStack configuration or environment directly (root/admin privileges).
Your VM is seen as a "standalone" server/node to itself and you therefore you will need to request this information from whoever is hosting/operating the OpenStack install.
If you have the access of compute nodes , then you can check nova.conf file with param ram_allocation_ratio , else there is no way to find the info you are looking for until you have the access of compute nodes.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
On a system with 2^24 bytes of memory and fixed partitions, all of size 65,536
bytes, what is the minimum number of bits needed in an entry in the process table
to record the partition to which a process has been allocated?
Thanks
This is simple math.
There are 224 / 65536 = 256 partitions.
ceil(log2(256)) = 8 bits to encode a specific partition number.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
In one technical discussion the person asked me which things you look into when you buy a laptop.
Then he asked me to Sort different types of memory e.g RAM etc on the basis of speed.In simple words he wanted memory hierarchy .
Technically speaking a processor's registers are the fastest memory a computer has. The size is very small and people generally don't include those numbers when talking about a CPU.
The quickest memory in a computer that would be advertised is the memory that is directly attached to the CPU. It's called cache, and in modern processors you have 3 levels - L1, L2, and L3 - where the first level is the fastest but also the smallest (it's expensive to produce and power). Cache typically ranges from several kilobytes to a few megabytes and is typically made from SRAM.
After that there is RAM. Today's computers use DDR3 for main memory. It's much larger and cheaper than cache, and you'll find sticks upwards of 1 gigabyte in size. The most common type of RAM today is DRAM.
Lastly storage space, such as a hard drive or flash drive, is a form of memory but in general conversation it's grouped separately from the previous types of memory. E.g. you would ask how much "memory" a computer has - meaning RAM - and how much "storage" it has - meaning hard drive space.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
How can you tell how many cores are available in any given GPU?
I would prefer a Windows/UI based answer, but API (DirectX?) is also nice to know.
No such API. Even term "core", applied to graphics hardware cannot be defined in a universal way: different vendors have very different architectures (even on desktop platforms). So, we can have 384 "CUDA cores" in nVidia GPU, 1024 "shader ALUs" in AMD GPU and 20 "blocks" in Intel GPU of the same price/performance/transistor count category. Sometimes you don't even have a dedicated GPU. So, it does not make sense to compare those numbers.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 5 years ago.
Improve this question
I have a program that reads about a million of rows and group the rows; the client computer is not stressed at all, no more than 5% cpu usage and the network card is used at about 10% or less.
If in the same client machine I run four copies of the program the use grow at the same rate, with the four programs running, I get about 20% cpu usage and about 40% network usage. That makes me think that I can improve the performance using threads to read the information from the database. But I don't want to introduce this complexity if a configuration change could do the same.
Client: Windows 7, CSDK 3.50.TC7
Server: AIX 5.3, IBM Informix Dynamic Server Version 11.50.FC3
There are a few tweaks you can try, most notably setting the fetch buffer size. The environment variable FET_BUF_SIZE can be set to a value such as 32767. This may help you get closer to saturating the client and the network.
Multiple threads sharing a single connection will not help. Multiple threads using multiple connections might help - they'd each be running a separate query, of course.
If the client program is grouping the rows, we have to ask "why?". It is generally best to leave the server (DBMS) to do that. That said, if the server is compute bound and the client PC is wallowing in idle cycles, it may make sense to do the grunt work on the client instead of the server. Just make sure you minimize the data to be relayed over the network.