We are using Jmeter 2.11 for doing performance testing. We set up test with 1000 users with ramp up time as 4 hours. We expected the run will go for 8 hours. But server didn't get request after 3 hours. I'm not sure whether Jmeter not able to make a request or server issue
jmeter.log and logs of your application server for any error messages if they are - update your request as it would be more clear what's going on.
Given you have powerful hardware on load generator (JMeter) instance it can spawn 1000 concurrent threads, but make sure that you're following JMeter Performance and Tuning Tips advice.
If single JMeter instance cannot create required load you can consider Remote Testing when single Master orchestrates load of multiple client load engines.
The main purpose of load/performance testing is finding limits or bottlenecks on the integrated stack of the application. When you run a load test you should monitor the application/servers closely to understand what is happening. Often these tests are performed with the help of the system administration team, because they have better experience in monitoring the server-side of the systems.
You want to understand which part of the stack cannot handle the load. Server IO, Database access, network, etc... Without adequate monitoring you will keep guessing and making assumptions.
I think you can use the JMeter Server Agent to collect data on the server performance and generate metrics from it. Otherwise monitor the systems in realtime and check the logs for any issue's.
I expect you overloaded the server and it cannot handle 1000 simultaneous users. Of-course JMeter itself could be the problem, but you do not give enough information to diagnose. Maybe you can start JMeter on multiple systems with less users. Instead of ramping one machine to 1000, try four machines that ramp up to 250 users instead.