Linux /proc/sys/vm/drop_caches in guest VMsVirtualization: Guest in guest?Will a SSD cache increase Native ZFS performance for me?Is it safe to use up all memory on linux server, not leaving anything for the cache?Write caching in linuxWhat are the performance implications of running VMs on a ZFS host?Is there disk based file system with dedicated memory caching for Linux?How do I prevent ntfs-3g use starving my ZFS ARC of memory?Is there a way to limit the “buffer” memory use in Linux?qemu-kvm reclamation of memory from low-use guestsOptimal ARC and L2ARC settings for purpose specific storage application

How can one's career as a reviewer be ended?

Next date with distinct digits

How to learn Linux system internals

I've been given a project I can't complete, what should I do?

Why did Intel abandon unified CPU cache?

60s or 70s novel about Empire of Man making 1st contact with 1st discovered alien race

If there's something that implicates the president why is there then a national security issue? (John Dowd)

Is it safe to change the harddrive power feature so that it never turns off?

Non-aqueous eyes?

Why can I traceroute to this IP address, but not ping?

Does the new finding on "reversing a quantum jump mid-flight" rule out any interpretations of QM?

Has there been a multiethnic Star Trek character?

Does Assassinate grant two attacks?

Why was this person allowed to become Grand Maester?

What are some really overused phrases in French that are common nowadays?

What is this airplane?

Are polynomials with the same roots identical?

What aircraft was used as Air Force One for the flight between Southampton and Shannon?

How to make insert mode mapping count as multiple undos?

Live action TV show where High school Kids go into the virtual world and have to clear levels

Why is there always a fire truck present before refuelling?

What are neighboring ports?

Is there a DSLR/mirorless camera with minimal options like a classic, simple SLR?

How creative should the DM let an artificer be in terms of what they can build?



Linux /proc/sys/vm/drop_caches in guest VMs


Virtualization: Guest in guest?Will a SSD cache increase Native ZFS performance for me?Is it safe to use up all memory on linux server, not leaving anything for the cache?Write caching in linuxWhat are the performance implications of running VMs on a ZFS host?Is there disk based file system with dedicated memory caching for Linux?How do I prevent ntfs-3g use starving my ZFS ARC of memory?Is there a way to limit the “buffer” memory use in Linux?qemu-kvm reclamation of memory from low-use guestsOptimal ARC and L2ARC settings for purpose specific storage application






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








1















Question:
Would it ever be a good idea to disable page cache inside guest VM's and instead rely on the ZFS ARC (and SSD based L2ARC) of the host?



Context:
I'm asking since I'm running a Proxmox cluster which is always showing around 90% use of RAM for all VM's, regardless of how much it actually needs. This is to be expected due to the guest kernel's use of page cache. Since I've been hearing a lot of good things about ZFS's ARC it got me thinking that perhaps I could increase the reliance on those and reduce the reliance on the page cache of the guests. In essence the ARC would kind of be a shared page cache for all VM's.



By doing this I would get the additional benefit of more accurate proxmox statistics and graphs, thus giving me a better picture on how much memory each VM actually needs. This in turn would give me the information I need in order to better tune the sizes of each VM's RAM and allow me to increase the size of the host's ARC by the same amount.



I haven't actually tried any of this, I thought I would run it by you guys first. So, am I stupid for thinking this way?



Follow up question: HOW would I go about disabling (or limiting) the page cache in a Linux VM? ONE method would be to use a cronjob and regularly write "3" to /proc/sys/vm/drop_caches, like once every minute or something. But it feels kinda hacky, isn't there a better way?



P.S. Yes I realize that I'm only talking about read cache, not write cache which is affected by the amount of dirty pages. So I would probably still need some amount free RAM space to allow for that (but that should be visible in the VM's RAM usage statistics in Proxmox, so everything above should still apply).










share|improve this question






















  • Are your VMs short on RAM? Is everything right-sized?

    – ewwhite
    May 24 at 15:07











  • No, they have more than they need, which is actually (kind of) the point of the question.

    – A. Nilsson
    May 24 at 15:26











  • Why would you want to hurt your VMs' performance in this way?

    – Michael Hampton
    May 24 at 17:19











  • But that's the main point of the question, why would it hurt my VM's performance? Unless I have missunderstood how this works (which I might have, which is why I asked the question in the first place) I'm simply moving the page cache outside of the VM but not actually moving it outside of RAM, right? So it should be the same performance?

    – A. Nilsson
    May 24 at 17:51






  • 1





    If you memory limit your VMs or use a balloon driver this basically happens automatically, page cache and buffer cache will shrink to a minimum. Not having any cache won’t be very efficient since you still want to reduce roundtrips by having multi block reads or read ahead and also async flushes. Also the host cache will mostly benefit shared blocks (shared snapshot bases) only.

    – eckes
    May 25 at 10:59

















1















Question:
Would it ever be a good idea to disable page cache inside guest VM's and instead rely on the ZFS ARC (and SSD based L2ARC) of the host?



Context:
I'm asking since I'm running a Proxmox cluster which is always showing around 90% use of RAM for all VM's, regardless of how much it actually needs. This is to be expected due to the guest kernel's use of page cache. Since I've been hearing a lot of good things about ZFS's ARC it got me thinking that perhaps I could increase the reliance on those and reduce the reliance on the page cache of the guests. In essence the ARC would kind of be a shared page cache for all VM's.



By doing this I would get the additional benefit of more accurate proxmox statistics and graphs, thus giving me a better picture on how much memory each VM actually needs. This in turn would give me the information I need in order to better tune the sizes of each VM's RAM and allow me to increase the size of the host's ARC by the same amount.



I haven't actually tried any of this, I thought I would run it by you guys first. So, am I stupid for thinking this way?



Follow up question: HOW would I go about disabling (or limiting) the page cache in a Linux VM? ONE method would be to use a cronjob and regularly write "3" to /proc/sys/vm/drop_caches, like once every minute or something. But it feels kinda hacky, isn't there a better way?



P.S. Yes I realize that I'm only talking about read cache, not write cache which is affected by the amount of dirty pages. So I would probably still need some amount free RAM space to allow for that (but that should be visible in the VM's RAM usage statistics in Proxmox, so everything above should still apply).










share|improve this question






















  • Are your VMs short on RAM? Is everything right-sized?

    – ewwhite
    May 24 at 15:07











  • No, they have more than they need, which is actually (kind of) the point of the question.

    – A. Nilsson
    May 24 at 15:26











  • Why would you want to hurt your VMs' performance in this way?

    – Michael Hampton
    May 24 at 17:19











  • But that's the main point of the question, why would it hurt my VM's performance? Unless I have missunderstood how this works (which I might have, which is why I asked the question in the first place) I'm simply moving the page cache outside of the VM but not actually moving it outside of RAM, right? So it should be the same performance?

    – A. Nilsson
    May 24 at 17:51






  • 1





    If you memory limit your VMs or use a balloon driver this basically happens automatically, page cache and buffer cache will shrink to a minimum. Not having any cache won’t be very efficient since you still want to reduce roundtrips by having multi block reads or read ahead and also async flushes. Also the host cache will mostly benefit shared blocks (shared snapshot bases) only.

    – eckes
    May 25 at 10:59













1












1








1








Question:
Would it ever be a good idea to disable page cache inside guest VM's and instead rely on the ZFS ARC (and SSD based L2ARC) of the host?



Context:
I'm asking since I'm running a Proxmox cluster which is always showing around 90% use of RAM for all VM's, regardless of how much it actually needs. This is to be expected due to the guest kernel's use of page cache. Since I've been hearing a lot of good things about ZFS's ARC it got me thinking that perhaps I could increase the reliance on those and reduce the reliance on the page cache of the guests. In essence the ARC would kind of be a shared page cache for all VM's.



By doing this I would get the additional benefit of more accurate proxmox statistics and graphs, thus giving me a better picture on how much memory each VM actually needs. This in turn would give me the information I need in order to better tune the sizes of each VM's RAM and allow me to increase the size of the host's ARC by the same amount.



I haven't actually tried any of this, I thought I would run it by you guys first. So, am I stupid for thinking this way?



Follow up question: HOW would I go about disabling (or limiting) the page cache in a Linux VM? ONE method would be to use a cronjob and regularly write "3" to /proc/sys/vm/drop_caches, like once every minute or something. But it feels kinda hacky, isn't there a better way?



P.S. Yes I realize that I'm only talking about read cache, not write cache which is affected by the amount of dirty pages. So I would probably still need some amount free RAM space to allow for that (but that should be visible in the VM's RAM usage statistics in Proxmox, so everything above should still apply).










share|improve this question














Question:
Would it ever be a good idea to disable page cache inside guest VM's and instead rely on the ZFS ARC (and SSD based L2ARC) of the host?



Context:
I'm asking since I'm running a Proxmox cluster which is always showing around 90% use of RAM for all VM's, regardless of how much it actually needs. This is to be expected due to the guest kernel's use of page cache. Since I've been hearing a lot of good things about ZFS's ARC it got me thinking that perhaps I could increase the reliance on those and reduce the reliance on the page cache of the guests. In essence the ARC would kind of be a shared page cache for all VM's.



By doing this I would get the additional benefit of more accurate proxmox statistics and graphs, thus giving me a better picture on how much memory each VM actually needs. This in turn would give me the information I need in order to better tune the sizes of each VM's RAM and allow me to increase the size of the host's ARC by the same amount.



I haven't actually tried any of this, I thought I would run it by you guys first. So, am I stupid for thinking this way?



Follow up question: HOW would I go about disabling (or limiting) the page cache in a Linux VM? ONE method would be to use a cronjob and regularly write "3" to /proc/sys/vm/drop_caches, like once every minute or something. But it feels kinda hacky, isn't there a better way?



P.S. Yes I realize that I'm only talking about read cache, not write cache which is affected by the amount of dirty pages. So I would probably still need some amount free RAM space to allow for that (but that should be visible in the VM's RAM usage statistics in Proxmox, so everything above should still apply).







linux kvm-virtualization zfs proxmox disk-cache






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked May 24 at 14:50









A. NilssonA. Nilsson

56846




56846












  • Are your VMs short on RAM? Is everything right-sized?

    – ewwhite
    May 24 at 15:07











  • No, they have more than they need, which is actually (kind of) the point of the question.

    – A. Nilsson
    May 24 at 15:26











  • Why would you want to hurt your VMs' performance in this way?

    – Michael Hampton
    May 24 at 17:19











  • But that's the main point of the question, why would it hurt my VM's performance? Unless I have missunderstood how this works (which I might have, which is why I asked the question in the first place) I'm simply moving the page cache outside of the VM but not actually moving it outside of RAM, right? So it should be the same performance?

    – A. Nilsson
    May 24 at 17:51






  • 1





    If you memory limit your VMs or use a balloon driver this basically happens automatically, page cache and buffer cache will shrink to a minimum. Not having any cache won’t be very efficient since you still want to reduce roundtrips by having multi block reads or read ahead and also async flushes. Also the host cache will mostly benefit shared blocks (shared snapshot bases) only.

    – eckes
    May 25 at 10:59

















  • Are your VMs short on RAM? Is everything right-sized?

    – ewwhite
    May 24 at 15:07











  • No, they have more than they need, which is actually (kind of) the point of the question.

    – A. Nilsson
    May 24 at 15:26











  • Why would you want to hurt your VMs' performance in this way?

    – Michael Hampton
    May 24 at 17:19











  • But that's the main point of the question, why would it hurt my VM's performance? Unless I have missunderstood how this works (which I might have, which is why I asked the question in the first place) I'm simply moving the page cache outside of the VM but not actually moving it outside of RAM, right? So it should be the same performance?

    – A. Nilsson
    May 24 at 17:51






  • 1





    If you memory limit your VMs or use a balloon driver this basically happens automatically, page cache and buffer cache will shrink to a minimum. Not having any cache won’t be very efficient since you still want to reduce roundtrips by having multi block reads or read ahead and also async flushes. Also the host cache will mostly benefit shared blocks (shared snapshot bases) only.

    – eckes
    May 25 at 10:59
















Are your VMs short on RAM? Is everything right-sized?

– ewwhite
May 24 at 15:07





Are your VMs short on RAM? Is everything right-sized?

– ewwhite
May 24 at 15:07













No, they have more than they need, which is actually (kind of) the point of the question.

– A. Nilsson
May 24 at 15:26





No, they have more than they need, which is actually (kind of) the point of the question.

– A. Nilsson
May 24 at 15:26













Why would you want to hurt your VMs' performance in this way?

– Michael Hampton
May 24 at 17:19





Why would you want to hurt your VMs' performance in this way?

– Michael Hampton
May 24 at 17:19













But that's the main point of the question, why would it hurt my VM's performance? Unless I have missunderstood how this works (which I might have, which is why I asked the question in the first place) I'm simply moving the page cache outside of the VM but not actually moving it outside of RAM, right? So it should be the same performance?

– A. Nilsson
May 24 at 17:51





But that's the main point of the question, why would it hurt my VM's performance? Unless I have missunderstood how this works (which I might have, which is why I asked the question in the first place) I'm simply moving the page cache outside of the VM but not actually moving it outside of RAM, right? So it should be the same performance?

– A. Nilsson
May 24 at 17:51




1




1





If you memory limit your VMs or use a balloon driver this basically happens automatically, page cache and buffer cache will shrink to a minimum. Not having any cache won’t be very efficient since you still want to reduce roundtrips by having multi block reads or read ahead and also async flushes. Also the host cache will mostly benefit shared blocks (shared snapshot bases) only.

– eckes
May 25 at 10:59





If you memory limit your VMs or use a balloon driver this basically happens automatically, page cache and buffer cache will shrink to a minimum. Not having any cache won’t be very efficient since you still want to reduce roundtrips by having multi block reads or read ahead and also async flushes. Also the host cache will mostly benefit shared blocks (shared snapshot bases) only.

– eckes
May 25 at 10:59










1 Answer
1






active

oldest

votes


















3














I often (but not always, see below) optimize my hypervisors similar to what you suggest: let VMs to heavily relay on shared host disk cache.



However, using the drop_caches approach seems too heavy-handed to me, as it can evict too much cache memory from guest. At the same time, I don't know any method to limit pagecache (short of configuring your application for using direct I/O). So, the key is to correctly size your VM RAM resources: try to assign only the memory a guest really needs, plus 1 or 2 GB for having some "breathing room".



Managing memory in this manner has some important advantages:



  • being managed by the host, cache memory can be dynamically allocated to guests based on their I/O requirements;

  • by the virtue of being dynamically managed, treating your memory as a true resource pool, you reduce wasted resources and increase efficiency;

  • if using ZFS on your host, you tap into the very advanced ARC/L2ARC and its trash-resistant behavior

But there are some disvantages as well:



  • being a shared resource, your host cache memory can be trashed by a rogue VM (impacting other, more important, VMs);

  • being located some context switches and vmexit/vmenter away, the peak and sustained speed of any host-based cache will be lower than the corrispettive guest-side cache (and this is the reason I suggest you to avoid repeated drop_caches in the guest);

  • albeit more advanced and with much higher hit-rate, ARC is slower than linux pagecache when the workload fits entirely in cache. So, for maximum guest speed on performance-critical guests, you probably want to give to the VM sufficient memory for pagecache.





share|improve this answer























  • Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

    – A. Nilsson
    May 25 at 19:05












Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968727%2flinux-proc-sys-vm-drop-caches-in-guest-vms%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














I often (but not always, see below) optimize my hypervisors similar to what you suggest: let VMs to heavily relay on shared host disk cache.



However, using the drop_caches approach seems too heavy-handed to me, as it can evict too much cache memory from guest. At the same time, I don't know any method to limit pagecache (short of configuring your application for using direct I/O). So, the key is to correctly size your VM RAM resources: try to assign only the memory a guest really needs, plus 1 or 2 GB for having some "breathing room".



Managing memory in this manner has some important advantages:



  • being managed by the host, cache memory can be dynamically allocated to guests based on their I/O requirements;

  • by the virtue of being dynamically managed, treating your memory as a true resource pool, you reduce wasted resources and increase efficiency;

  • if using ZFS on your host, you tap into the very advanced ARC/L2ARC and its trash-resistant behavior

But there are some disvantages as well:



  • being a shared resource, your host cache memory can be trashed by a rogue VM (impacting other, more important, VMs);

  • being located some context switches and vmexit/vmenter away, the peak and sustained speed of any host-based cache will be lower than the corrispettive guest-side cache (and this is the reason I suggest you to avoid repeated drop_caches in the guest);

  • albeit more advanced and with much higher hit-rate, ARC is slower than linux pagecache when the workload fits entirely in cache. So, for maximum guest speed on performance-critical guests, you probably want to give to the VM sufficient memory for pagecache.





share|improve this answer























  • Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

    – A. Nilsson
    May 25 at 19:05
















3














I often (but not always, see below) optimize my hypervisors similar to what you suggest: let VMs to heavily relay on shared host disk cache.



However, using the drop_caches approach seems too heavy-handed to me, as it can evict too much cache memory from guest. At the same time, I don't know any method to limit pagecache (short of configuring your application for using direct I/O). So, the key is to correctly size your VM RAM resources: try to assign only the memory a guest really needs, plus 1 or 2 GB for having some "breathing room".



Managing memory in this manner has some important advantages:



  • being managed by the host, cache memory can be dynamically allocated to guests based on their I/O requirements;

  • by the virtue of being dynamically managed, treating your memory as a true resource pool, you reduce wasted resources and increase efficiency;

  • if using ZFS on your host, you tap into the very advanced ARC/L2ARC and its trash-resistant behavior

But there are some disvantages as well:



  • being a shared resource, your host cache memory can be trashed by a rogue VM (impacting other, more important, VMs);

  • being located some context switches and vmexit/vmenter away, the peak and sustained speed of any host-based cache will be lower than the corrispettive guest-side cache (and this is the reason I suggest you to avoid repeated drop_caches in the guest);

  • albeit more advanced and with much higher hit-rate, ARC is slower than linux pagecache when the workload fits entirely in cache. So, for maximum guest speed on performance-critical guests, you probably want to give to the VM sufficient memory for pagecache.





share|improve this answer























  • Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

    – A. Nilsson
    May 25 at 19:05














3












3








3







I often (but not always, see below) optimize my hypervisors similar to what you suggest: let VMs to heavily relay on shared host disk cache.



However, using the drop_caches approach seems too heavy-handed to me, as it can evict too much cache memory from guest. At the same time, I don't know any method to limit pagecache (short of configuring your application for using direct I/O). So, the key is to correctly size your VM RAM resources: try to assign only the memory a guest really needs, plus 1 or 2 GB for having some "breathing room".



Managing memory in this manner has some important advantages:



  • being managed by the host, cache memory can be dynamically allocated to guests based on their I/O requirements;

  • by the virtue of being dynamically managed, treating your memory as a true resource pool, you reduce wasted resources and increase efficiency;

  • if using ZFS on your host, you tap into the very advanced ARC/L2ARC and its trash-resistant behavior

But there are some disvantages as well:



  • being a shared resource, your host cache memory can be trashed by a rogue VM (impacting other, more important, VMs);

  • being located some context switches and vmexit/vmenter away, the peak and sustained speed of any host-based cache will be lower than the corrispettive guest-side cache (and this is the reason I suggest you to avoid repeated drop_caches in the guest);

  • albeit more advanced and with much higher hit-rate, ARC is slower than linux pagecache when the workload fits entirely in cache. So, for maximum guest speed on performance-critical guests, you probably want to give to the VM sufficient memory for pagecache.





share|improve this answer













I often (but not always, see below) optimize my hypervisors similar to what you suggest: let VMs to heavily relay on shared host disk cache.



However, using the drop_caches approach seems too heavy-handed to me, as it can evict too much cache memory from guest. At the same time, I don't know any method to limit pagecache (short of configuring your application for using direct I/O). So, the key is to correctly size your VM RAM resources: try to assign only the memory a guest really needs, plus 1 or 2 GB for having some "breathing room".



Managing memory in this manner has some important advantages:



  • being managed by the host, cache memory can be dynamically allocated to guests based on their I/O requirements;

  • by the virtue of being dynamically managed, treating your memory as a true resource pool, you reduce wasted resources and increase efficiency;

  • if using ZFS on your host, you tap into the very advanced ARC/L2ARC and its trash-resistant behavior

But there are some disvantages as well:



  • being a shared resource, your host cache memory can be trashed by a rogue VM (impacting other, more important, VMs);

  • being located some context switches and vmexit/vmenter away, the peak and sustained speed of any host-based cache will be lower than the corrispettive guest-side cache (and this is the reason I suggest you to avoid repeated drop_caches in the guest);

  • albeit more advanced and with much higher hit-rate, ARC is slower than linux pagecache when the workload fits entirely in cache. So, for maximum guest speed on performance-critical guests, you probably want to give to the VM sufficient memory for pagecache.






share|improve this answer












share|improve this answer



share|improve this answer










answered May 24 at 18:49









shodanshokshodanshok

27.9k35194




27.9k35194












  • Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

    – A. Nilsson
    May 25 at 19:05


















  • Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

    – A. Nilsson
    May 25 at 19:05

















Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

– A. Nilsson
May 25 at 19:05






Thank you, this was the kind of nuanced information I was looking for! I knew I was oversimplifying the issue somehow, but I wasn't clear on the details.

– A. Nilsson
May 25 at 19:05


















draft saved

draft discarded
















































Thanks for contributing an answer to Server Fault!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968727%2flinux-proc-sys-vm-drop-caches-in-guest-vms%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to write a 12-bar blues melodyI-IV-V blues progressionHow to play the bridges in a standard blues progressionHow does Gdim7 fit in C# minor?question on a certain chord progressionMusicology of Melody12 bar blues, spread rhythm: alternative to 6th chord to avoid finger stretchChord progressions/ Root key/ MelodiesHow to put chords (POP-EDM) under a given lead vocal melody (starting from a good knowledge in music theory)Are there “rules” for improvising with the minor pentatonic scale over 12-bar shuffle?Confusion about blues scale and chords

What if the end-user didn't have the required library?What is setup.py?What is a clean, pythonic way to have multiple constructors in Python?What does Ruby have that Python doesn't, and vice versa?What is the reason for having '//' in Python?How do I create a namespace package in Python?How to package shared objects that python modules depend on?setuptools vs. distutils: why is distutils still a thing?Navigation in Windows 10 vs code not going to virtualenv library when the same library is installed at user levelPython create package for local usePackaging a project that uses multiple python versionsWhy is permission denied on pip install except for when “--user” is included at end of command?

Why did Thanos need his ship to help him in the battle scene?Which actor plays Thanos in the Avengers mid-credits scene?Are there economic implications portrayed in comics where the buildings and cities are ruined almost daily?Old X-Men comic where team travels to alien world with a ring-like sun that needs recharging?Why does Ego need help sleeping?Is there an objective answer to who “the strongest Avenger” is?How did Banner get unstuck?Why did Thanos get hit?How did Thanos (or anyone) know the Infinity Stones would give him this power?Did Thanos leave Eitri alive for his after-sales service?In Avengers 1, why does Thanos need Loki?