Tag Info

The first line means:
total: Your total (physical) RAM (excluding a small bit that the kernel permanently reserves for itself at startup); that's why it shows ca. 11.7 GiB , and not 12 GiB, which you probably have.
used: memory in use by the OS.
free: memory not in use.
total = used + free
shared / buffers / cached: This shows memory usage for specific ...

You are experiencing the Linux Ate My Ram issue.
Don't Panic.
This is NOT a problem.
Your system is Working As Designed.
The problem is not your OS -- the problem is your understanding of what "free" memory is.
Unix systems use memory for more than just running programs. Memory might be used for:
Running programs (active/used)
Buffering data in ...

OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
146851887 146851887 12% 0.19K 6992947 21 27971788K dentry
You say it's not because of disk caching, but clearly it is.
My bet is that you have code that makes lots of fetches for files that do not exist and you get a ton of negative caching. Linux will remove these entries if it's ...

This is the same "problem" as from Server refuses to use swap partition and a few other similar questions on this site. ( High Memory Usage on Linux Server, Memory Usage in LINUX, Web Server Running Low in Memory, etc.)
Pay attention to the fact that the memory consumption is from cache. This means it's keeping a file in memory. Cached memory is "free" ...

Setting overcommit_ratio to 80 is likely not the right action. Setting the value to anything less than 100 is almost always incorrect.
The reason for this is that linux applications allocate more than they really need. Say they allocate 8kb to store a couple character string of text. Well thats several KB unused right there. Applications do this a lot, and ...

You've got a total of 156996 KB of memory used for programs, and a further 343684-156996=186688 KB used for buffers & cache. That means that about 22% of memory is used, not 60%.
These buffers are used to store the contents of your disks, either before they're written to the disk, or after they've been read in case you want to read the data again. You ...

I had the same experience in Nagios when I used the check_mem.pl plugin. When you define the tress hold for critical, you need to use a capital C instead of a normal c.
Like this:
command[check_mem]=/usr/lib/nagios/plugins/check_mem -w 10 -C 5 -f
Then it takes the cached memory in account and it will not send warnings.

Is this a 64bit server - do you have the lock pages in memory local policy enabled?
SQL is likely consuming the rest of your memory
If you look at the perfmon counters you will see the memory allocation
Here is an article that explains it in depth
You can also view the counters in SQL
SELECT
object_name
,Counter_name
,cntr_value
,ROUND(( ...

An easy way to see if you need more RAM is to chart the Page Life Expectancy perfmon counter. This counter tells you how long SQL Server thinks that data will be kept in the buffer pool before it needs to make room for other data. You want this number as high as possible. With 6 Gigs of RAM installed (you should have SQL set to max out at probably 4 gigs) ...

The SQL Server IS running - whether or not you have Management Studio have open. SQL Server will use as much memory as it needs and can get - by default - you can change that, if you want to limit SQL Server to a certain amount of RAM. But be aware: SQL Server needs a good chunk of RAM to work properly - if you restrict it too much, it'll slow down ...

Running top in batch mode to report memory sizes periodically can be used to see who is using the memory when things go south. Runing sar in batch mode should give some good diagnostics on memory use, and related I/O. Running munin to monitor the system should give you a graph with good detail on what memory is being used for. This may help a lot.
You ...

Well, there is an easy way to take a look at the kernel's page cache if you happen to have ftools - "fincore" gives you some summary information on what files' pages are the content of the cache.
You will need to supply a list of file names to check for their presence in the page cache. This is because the information stored in the kernel's page cache ...

However, when I run ps aux, the memory usage of all processes only comes out to 295.9MB, which is a far cry from the 1.7GB of memory that free reports as used.
Why is there such a discrepancy?
Because linux memory management is just plain wacky?
Jokes aside, seriously - memory management in Linux is not a simple beast. There are different ways ...

Section 9.6 "Overcommit and OOM" in the doc that @dunxd mentions is particularly graphic on the dangers of allowing overcommit. However, the 80 looked interesting to me as well, so I conducted a few tests.
What I found is that the overcommit_ratio affects the total RAM available to ALL processes. Root processes don't seem to be treated differently from ...

This is normal. SQL server will always use all available memory, and scale back when the system needs more resources.
THIS article describes what is going on.
When you start SQL Server, SQL Server memory usage may continue to steadily increase and not decrease, even when activity on the server is low. Additionally, the Task Manager and Performance ...

The main parameter for tweaking Apache's memory usage will be MaxClients. Too low a value and you will run out of available slots to serve client requests. Too many and you will use up all your RAM and begin to use swap space which will kill performance (it may appear to be a server crash).
One way of tuning MaxClients is to observe the system's memory ...

You can use this command to see the top 10 applications regarding RAM usage:
ps -A --sort -rss -o comm,pmem | head -n 11
Sometimes this command helps you if many sub processes have been generated:
ps auxf
This way you can see which processes belong together.

After re-reading your comments above and your original post - you ran ulimit -a as root - but you said that root is unaffected.
Your issue here is ulimit, but at a user level. Log in as your dan user and run ulimit -a and you will probably find your memory is limited.

FreeBSD has a pretty decent userbase of very knowledgeable people. I wouldn't worry about that too much. Bigger issue would be your personal experience and knowledge on the matter.
Ask yourself (and tell us): why is it so important to have a couple of megs of extra free RAM in your server? What does that gain you? And what does it cost you, both in terms of ...

You have earned Confused by Linux memory usage badge!
Processes are not the only thing eating up memory in Linux. The frequently used files and directory entries are cached in RAM - that's because reading the files from RAM is lots faster than reading them from disk. I bet you didn't take buffers and cached columns into account while calculating the RAM ...

You really don't want to do this. The kernel will immediately relinquish cache pages to other applications if and when they call for it.
It's a complete waste of money to not let the kernel use all your available RAM.

Not really any way to easily tell because it is entirely dependent on your usage and the application. You're maxing out a database server...how big is the database? What are your transaction stats?
The real-world limitations are obvious in your scenario. You're running for awhile on 6 gig without problem, then it's swapping and thrashing.Thus 6 gig isn't ...

Top, that is the figure in the %MEM column, is counting the amount of RSS memory (Resident Segment Size, basically pages physically in memory that have real data on them) as a percentage of total physical memory in your machine or VPS.
On the other hand, free is counting just that, the amount of physical memory pages that have no data on them, and have not ...

SQL Server will use as much memory as it needs. You don't have to be running SSMS for it to use memory - you have things like the data cache which will cache data in memory when queried to make it faster to retrieve for subsequent calls. Any connections being made to the db server will use memory. It shouldn't be anything to worry about, if the OS needs more ...