According to the manpage, "-l" in ulimit means "The maximum size that may be locked into memory". What does this sentence mean, exactly? How may it affect running programs?
Memory that is locked may not be paged out - this reduces the amount of memory that is available for other processes. This setting limits the amount of memory that can be locked.