A method for adaptive near storage computation comprising: receiving, from a host (102, 502, 602, 702, 802) of a system, a request at a storage apparatus; determining local performance information at the storage apparatus; and performing an operation at the storage apparatus based on the request and the local performance information; receiving system performance information at the storage apparatus, wherein performing the operation at the storage apparatus is further based on the system performance information, wherein the system performance information is information on one or more performance parameters of the system, such as host CPU load, host memory load or system priorities; and generating updated system performance information by changing the system performance information, wherein performing the operation at the storage apparatus is based on the updated system performance information, and wherein: the storage apparatus comprises a switch and a storage device (104, 204, 504, 804) of the system; generating the updated system performance information comprises generating the updated system performance information at the switch; performing the operation at the storage apparatus comprises performing the operation at the storage device (104, 204, 504, 804); and the switch is located between the host (102, 502, 602, 702, 802) and the storage device (104, 204, 504, 804) to control the flow of data between the host and the storage devices over bus segments. receiving, from a host (102, 502, 602, 702, 802) of a system, a request at a storage apparatus; determining local performance information at the storage apparatus; and performing an operation at the storage apparatus based on the request and the local performance information; receiving system performance information at the storage apparatus, wherein performing the operation at the storage apparatus is further based on the system performance information, wherein the system performance information is information on one or more performance parameters of the system, such as host CPU load, host memory load or system priorities; and generating updated system performance information by changing the system performance information, wherein performing the operation at the storage apparatus is based on the updated system performance information, and wherein: the storage apparatus comprises a switch and a storage device (104, 204, 504, 804) of the system; generating the updated system performance information comprises generating the updated system performance information at the switch; performing the operation at the storage apparatus comprises performing the operation at the storage device (104, 204, 504, 804); and the switch is located between the host (102, 502, 602, 702, 802) and the storage device (104, 204, 504, 804) to control the flow of data between the host and the storage devices over bus segments. the storage apparatus comprises a switch and a storage device (104, 204, 504, 804) of the system; generating the updated system performance information comprises generating the updated system performance information at the switch; performing the operation at the storage apparatus comprises performing the operation at the storage device (104, 204, 504, 804); and the switch is located between the host (102, 502, 602, 702, 802) and the storage device (104, 204, 504, 804) to control the flow of data between the host and the storage devices over bus segments.